Граббер сайтов с веб-архива archive.org
При написании данного софта нужно учесть следующие моменты:
1. web.archive.org висит или почти висит 60% и более времени в сутки! Соответственно прога должна уметь ждать и сама не зависать в момент ожидания! При активации задания раз в час оповещать оператора о состоянии работы!
2. web.archive.org в одно и тоже время может висеть у одного пользователя, а у другого работать вполне нормально (говорят)! Надо продумать, как работать через прокси, если это необходимо! Должна быть реализована многопоточность!
3. web.archive.org может выдавать на запрос какой то конкретной странице сайта, что той нет в архиве, но уже через минут 10-15 мин. при повторном запросе выдавать сохраненную копию. Соответственно прога должна уметь или ждать в случаях когда возможна такая ситуация, либо скачивать аналогичную страницу из более раннего архива данного сайта!
4. Часто рекурсивное скачивание агентом останавливалось после выкачки одной страницы. Т.е., к примеру, при закачке http://web.archive.org/web/20080112014047sh_/www.anglija.ru/ получаем только эту страницу и стили. На web.archive.org стоит защита от рекурсивного скачивания. Они портят все ссылки на странице, добавляя в head:
..
...
wget считает, что все ссылки смотрят за пределы данного сайта и не трогает их. А если закачивать страницу через обычный браузер, то после загрузки отрабатывает javascript и восстанавливает все ссылки:
...
var sWayBackCGI = "http://web.archive.org/web/20080112014047/";
...
url = url.replace('.way_back_stub','');
aCollection[sProp] = sWayBackCGI + url;
...
Т.е. для рекурсивной загрузки сайта из web.archive.org нужно либо специализированное решение, либо загрузчик, который отрабатывает javascript на странице. Сам не пробовал, но умные люди посоветовали Offline Explorer (под Windows) для загрузки, он умеет интерпретировать javascript на странице. А также посоветовали модуль под perl WWW::WebArchive
НЕ ЗНАЮ КАК НА САМОМ ДЕЛЕ! ПРОСТО НАШЕЛ В ИНТЕРНЕТЕ!
Принципы работы:
1. Должна быть реализована возможность добавлять пачки сайтов (до 100 и более)! Пример: http://wpdot.com/wg789/ - не работает почти правда!
2. Возможность выбора приоритетного архива. В случае если архив оператором не задан, то закачивается по умолчанию последний архив!
3. На выходе должна формироваться готовая для закачки на сервер папка. Желательно формирование дополнительной паки для локального просмотра на компьютере! В каждой папке должен находится файл, например 777999info.txt в котором указывается количество скаченных страниц!
4. Максимально возможная скорость скачки