
Мне нужно сравнить отдельные веб-сайты в разные моменты времени. т. е. через несколько дней или после того, как я вошел в систему. Меня не столько интересует время отклика, сколько сам контент, такой как js, изображения... Например, js, который я получаю сегодня, такой же, как и вчера. Есть ли изящный способ более или менее автоматически выгружать их и сравнивать (на основе хэша файла)?
Лучшее, что я смог придумать, это либо использовать прокси с проверкой TLS, которая должна доставлять все загруженные файлы в открытом тексте. Или использовать файлы har, которые также должны включать все файлы, из которых состоит веб-сайт. Есть ли что-то, что я мог упустить из этих подходов? Или, может быть, есть альтернативные способы сделать это?
Редактировать:
Мне нужно загружать вещи после того, как я вошел в систему, и в частности мне нужно знать, что некоторые скрипты отправляют/получают в фоновом режиме. Поэтому мне нужно записать активный сеанс и захватить все данные, которые идут по сети в открытом тексте.
решение1
Если вам нужно войти и выполнить какие-то действия, то статических загрузок с помощью wget
или подобных инструментов будет недостаточно. В этом случае я предлагаю использоватьСелендля написания сценария требуемых действий и выгрузки всего содержимого веб-сайта вместе с ответом.
Основная идея заключается в том, чтобы написать скрипт на предпочитаемом вами языке (например, Python, Javascript, Ruby, ...), который использует веб-драйвер Selenium для управления браузером. Скрипт выполняет действия входа, нажимает на элементы и т. д., и как только вы получаете ответ, вы можете сохранить тело переданной страницы. Простой пример для Python:дано здесь, и некоторый код, который показывает вход в системуздесь.
Вам придется расширить код, перебрав все внешние <script>
теги, загрузив их исходники, или, пройдя по всем <img>
тегам, вы можете загрузить изображения. Таким образом, вы можете легко diff основного HTML-кода и посмотреть на отдельные имена файлов вызываемых скриптов/изображений.
Другой возможностью было бы запустить скрипт Selenium с помощьюБраузерМоб, который может экспортировать файлы HAR. Таким образом, вы можете объединить автоматизацию с автоматическим дампом всего. Конечно, затем вам придется сравнить файлы HAR, для которых существуют разные просмотрщики. Обратите внимание, что вам придется использовать сертификаты Man-in-the-Middle с BrowserMob, если вы хотите, чтобы он работал с сайтами HTTPS.
решение2
Если вы хотите загрузить весь сайт, см. статью Лучший бесплатный веб-риппер.
В этой статье содержатся обзоры нескольких хороших рипперов: HTTrack, PageNest, wget и другие. Я использовал HTTrack в прошлом, и он работал для меня.
Чтобы вернуться еще дальше назад во времени, вы можете попробовать Интернет-архив Wayback Machine который пытается архивировать весь Интернет. Он регулярно делает снимки веб-сайтов, поэтому вы найдете несколько версий для сравнения.
Для захвата трафика вам понадобится монитор веб-трафика. Могу порекомендовать два отличных продукта: Wireshark и Microsoft Телерик Скрипач.