CoderCastrov logo
CoderCastrov
Учебник

Как легко создать свою собственную машину Wayback

Как легко создать свою собственную машину Wayback
просмотров
4 мин чтение
#Учебник

Машина Wayback на https://archive.org - удивительный инструмент. Она позволяет исследовать давние дни интернета, вспомнить, как выглядели различные веб-сайты тогда по сравнению сегодня. Она даже позволяет восстановить информацию, которую оригинальный веб-сайт изменил или сделал недоступной. У машины Wayback есть свои недостатки, чтобы их понять, давайте рассмотрим, как она работает.

https://archive.org - это веб-сайт, на котором размещается контент, который собирает машина Wayback. Вы можете использовать его для поиска в его архивах и запроса добавления контента, который, по вашему мнению, должен быть заархивирован. Просто вставьте ссылку на веб-страницу, которую вы хотите заархивировать, в текстовое поле на главной странице и позвольте ему сделать свою работу. Машина Wayback захватит идеальное изображение вашей веб-страницы, загрузив все связанные с ней ресурсы и изменяя любой код для использования загруженных ресурсов вместо оригиналов. Это работает довольно хорошо, за исключением одной проблемы... она не очень хорошо отслеживает изменения.

Представьте, что у вас был политик, которого вы изначально поддерживали, они обещали изменения, с которыми вы согласились, и вы чувствовали, что они будут лучшим выбором. Но по мере развития их кампании обещания менялись, говорились ложные слова, и вдруг вы почувствовали себя запутанным? "Они когда-либо были на моей стороне?" Если бы у вас были доказательства! А что насчет социального медиа-личности, которую вы любите ненавидеть. Они продолжают говорить провокационные заявления, вызывать драму, публиковать твиты, а затем удалять их, когда их вызывают на ответ. Если бы только вы могли восстановить их твиты, конечно, есть веб-сайты, которые пытаются восстановить твиты, но вы никогда не можете найти то, что искали.

Если вы хотите сделать это правильно, вам нужно сделать это самостоятельно. И я могу научить вас, как это сделать.

Процедура, которую выполняет машина Wayback, является обычной в интернете, она называется парсингом веб-страниц. Парсинг веб-страниц - это процесс загрузки html-кода, который веб-сайт предоставил бы вашему браузеру, анализа его на наличие всех ссылок и других ресурсов, необходимых для отображения веб-страницы (таких как скрипты, таблицы стилей и изображения) и их загрузки. В этом нет ничего противозаконного, технически это то, для чего предназначены браузеры, но для целей отображения веб-страницы. Единственная серьезная проблема, которую вы должны иметь перед парсингом веб-сайта, - это то, не приведет ли ваша деятельность к существенному снижению возможности серверов обслуживать других пользователей. Федеральная комиссия связи строго запрещает вмешательство в коммуникацию других людей, но это не должно быть слишком большой проблемой, так как для того, чтобы оказать влияние на сервер, вам нужно будет непрерывно парсить его без остановки с нескольких компьютеров. У этого также есть другое название - DDOS-атака, которая является преступлением. К счастью, нам не нужно совершать преступление, потому что непрерывный парсинг веб-сайта был бы неэффективным. Мы хотим отслеживать изменения, но изменения не происходят каждую секунду.

Итак, как мы начинаем?

Первое, что нам понадобится, это Linux-машина, которую мы можем оставить включенной день и ночь. Для этого я рекомендую приобрести Raspberry Pi. Вы можете потратить деньги на модель 3B+ за $30 или выбрать более дешевую Raspberry Pi Zero W. Вы можете узнать больше о том, как настроить вашу новую Raspberry Pi здесь.

На самом деле, это практически все. Почти все дистрибутивы Linux поставляются с единственной программой, которая нам действительно нужна для начала парсинга веб-страниц. Это программа под названием wget. wget уже способен загружать целую веб-страницу и все ее ссылки самостоятельно, все, что нам нужно сделать, это настроить таймер для запуска wget через определенные интервалы.

Сначала мы сделаем скрипт парсинга веб-страниц. Вам не нужно ничего программировать, просто скопируйте и вставьте это в файл:

wget \
    --recursive \
    --page-requisites \
    --convert-links \
    --restrict-file-names=windows \
    --domains [ЗАМЕНИТЕ ЭТО НА ДОМЕН, КОТОРЫЙ ВЫ ХОТИТЕ ПАРСИТЬ]\
    --no-parent \
    --random-wait \
     --directory-prefix=$(ls | wc -l) \
    [ЗАМЕНИТЕ ЭТО НА ССЫЛКУ, КОТОРУЮ ВЫ ХОТИТЕ ПАРСИТЬ]

Давайте рассмотрим, что это делает:

  • --recursive позволяет wget переходить по всем ссылкам на каждой посещаемой веб-странице
  • --page-requisites заставляет wget загружать все файлы, которые страница требует для правильного отображения
  • --convert-links изменяет ссылки в HTML-коде так, чтобы они ссылались на загруженные файлы, а не на файлы на веб-сайте
  • --domains ограничивает wget только определенными доменами и не позволяет парсить внешние сайты
  • --no-parent не переходит к родительским веб-страницам
  • --random-wait заставляет wget ждать случайный интервал времени, чтобы сервер не заметил, что он парсит сайт, и не заблокировал ваш IP-адрес
  • --directory-prefix=$(ls | wc -l) автоматически помещает все файлы в новую папку

После того, как вы вставили это в файл, вам нужно выполнить быструю команду, чтобы сделать этот код исполняемым. Просто выполните chmod +x [имя файла], и все должно быть в порядке.

Последний шаг - настройка таймера. Большинство дистрибутивов Linux поставляются с системой под названием cronjob. Здесь мы можем запускать программу через определенные интервалы. Чтобы настроить свой cronjob, вам нужно ввести crontab -e, чтобы открыть файлы конфигурации. Это откроет текстовый редактор, в котором вы вставите эту строку кода:

*/30 * * * * [ЗАМЕНИТЕ ЭТО НА ПОЛНЫЙ ПУТЬ К ВАШЕМУ СКРИПТУ]

Это запланирует запуск вашего парсера каждые 30 минут. Вы можете изменить 30 на любой другой интервал, который вам нужен. Чтобы узнать больше о том, как указывать время в cronjob, нажмите здесь. Я не рекомендую устанавливать таймер на более частое выполнение, чем каждые 30 минут, так как это может вызвать проблемы для веб-сайта.

Вы закончили!

Теперь у вас есть полный и точный архив любого веб-сайта, который вам нужен. Если вы хотите узнать, изменится ли что-то или будет удалено, просто вернитесь к старому скачиванию и найдите то, что вам нужно. Счастливого парсинга!