Как легко создать свою собственную машину Wayback
Table Of Content
Машина 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 минут, так как это может вызвать проблемы для веб-сайта.
Вы закончили!
Теперь у вас есть полный и точный архив любого веб-сайта, который вам нужен. Если вы хотите узнать, изменится ли что-то или будет удалено, просто вернитесь к старому скачиванию и найдите то, что вам нужно. Счастливого парсинга!