Как мне полностью отразить веб-страницу?

StackOverflow https://stackoverflow.com/questions/400935

  •  03-07-2019
  •  | 
  •  

Вопрос

У меня есть несколько веб-страниц на нескольких разных сайтах, которые я хочу полностью отразить.Это означает, что мне понадобятся изображения, CSS и т.д., а ссылки необходимо преобразовать.Эта функциональность была бы аналогична использованию Firefox для "Сохранения страницы как" и выбора "Веб-страница, завершена".Я бы хотел назвать файлы и соответствующие каталоги как-то разумно (напримерmyfavpage1.html ,myfavpage1.реж).

У меня нет доступа к серверам, и это не мои страницы.Вот одна примерная ссылка: Кликни меня!

Еще немного уточнений...У меня есть около 100 страниц, которые я хочу отразить (многие с медленных серверов), я буду запускать задание на Solaris 10 и каждый час выгружать результаты на samba mount для просмотра людьми.И, да, я, очевидно, пробовал wget с несколькими разными флагами, но я не получил результатов, которые я ищу.Таким образом, указывать на страницу GNU wget на самом деле бесполезно.Позвольте мне начать с того, где я нахожусь, с простого примера.

 wget --mirror -w 2 -p --html-extension --tries=3 -k -P stackperl.html "https://stackoverflow.com/tags/perl"

Исходя из этого, я должен увидеть https://stackoverflow.com/tags/perl страница в файле stackper.html, если у меня были правильные флаги.

Это было полезно?

Решение

Если вы просто хотите запустить команду и получить копию веб-сайта, воспользуйтесь инструментами, предложенными другими, такими как wget, завиток, или некоторые инструменты графического интерфейса пользователя.Я использую свой личный инструмент, который я называю веб-жнец (дело не в Windows Веб-жнец хотя.Есть несколько программ на Perl, о которых я знаю, в том числе веб-зеркало и несколько других, которые вы можете найти на CPAN.

Если вы хотите сделать это внутри программы на Perl, которую вы пишете (поскольку в вашем ответе есть тег "perl"), в CPAN это может помочь вам на каждом этапе:

Удачи, :)

Другие советы

Для создания HTML-версии ваших сайтов вы могли бы использовать WinHTTrack - бесплатную программу с открытым исходным кодом GPL.Он удалит предварительно отрисованные версии ваших страниц, графики, документов, zip-файлов, фильмов и т.д...Конечно, поскольку это зеркальная копия, любой динамический серверный код, такой как вызовы базы данных, больше не будет динамическим.

http://www.httrack.com/

Лично я, когда в последний раз у меня возникло желание сделать это, написал скрипт на Python, который создал копию кэша моего браузера, а затем вручную посетил все страницы, которые я хотел отразить.Очень уродливое решение, но у него есть приятное преимущество в том, что оно не вызывает никаких сигналов тревоги типа "не царапайте мою страницу".Благодаря Операна панели вкладок "Ссылки" загрузка десятков тысяч страниц "вручную" оказалась далеко не такой сложной задачей, как вы могли бы подумать.

Я повторю комментарий "это непонятно".Это созданные вами веб-страницы / сайты, и вы хотите развернуть их на нескольких серверах?Если это так, используйте относительные ссылки в вашем HTML, и все должно быть в порядке.Или используйте a в своем и корректируйте его на каждом сайте.Но теория относительности - это действительно правильный путь.

Или вы хотите сказать, что хотели бы загружать веб-сайты (например, домашнюю страницу Stack Overflow, perl.com и т.д.), Чтобы иметь локальные копии на вашем компьютере?Я соглашусь с Дэниелом - используйте wget.

Джим

Я использую Веб-жнец

Вы можете использовать инструменты wget gnu, чтобы захватить весь сайт, подобный этому:

wget -r -p -np -k URL

или, если вы используете perl, попробуйте эти модули:

  • LWP:: Простой

  • WWW::Механизировать

Если wget является сложным или у вас нет linuxbox, вы всегда можете использовать WebZip

Похоже, вам нужна функциональность кэширования, предоставляемая хорошим прокси-сервером.

Может быть, поискать что-нибудь вроде КАЛЬМАРОВ?Почти уверен, что он сможет это сделать.

Однако это скорее вопрос типа системного администратора, чем программирования.

На большинстве современных веб-сайтов внешний интерфейс рассказывает лишь небольшую часть истории.Независимо от инструментов для удаления html, css и javascript, вам все равно будет не хватать основной функциональности, которая содержится на сервере.

Или, может быть, ты имел в виду что-то другое.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top