Сохраните одну веб-страницу (с фоновым изображением) с помощью Wget

Я хочу использовать Wget для сохранения отдельных веб-страниц (не рекурсивно, а не целых сайтов) для справки. Очень похоже на «веб-страницу» Firefox.

Моя первая проблема: я не могу заставить Wget сохранять фоновые изображения, указанные в CSS. Даже если он сохранил файлы фонового изображения, я не думаю, что -конвертированные ссылки будут конвертировать URL-адреса фонового изображения в файл CSS, чтобы указать на локально сохраненные фоновые изображения. У Firefox такая же проблема.

Моя вторая проблема: если на странице есть изображения, которые я хочу сохранить, размещенные на другом сервере (например, объявления), они не будут включены. –span-hosts, похоже, не решает эту проблему с приведенной ниже строкой.

Я использую: wget --no-parent --timestamping --convert-links --page-requisites --no-directories --no-host-directories -erobots=off http://domain.tld/webpage.html

На странице Wget man :

Фактически, для загрузки одной страницы и всех ее реквизитов (даже если они существуют на отдельных сайтах) и убедитесь, что лот отображается правильно локально, этому автору нравится использовать несколько опций в дополнение к '-p':

 wget -E -H -k -K -p http://www.example.com/ 

Кроме того, если robots.txt не разрешает вам добавлять -e robots=off

Команда wget предлагает параметр --mirror , который делает то же самое, что и:

 $ wget -r -N -l inf --no-remove-listing 

Вы также можете вставить -x чтобы создать целую иерархию каталогов для сайта, включая имя хоста.

Возможно, вам не удалось найти это, если вы не используете новейшую версию wget .

Похоже, что wget и Firefox не анализируют CSS для ссылок, чтобы включить эти файлы в загрузку. Вы можете обойти эти ограничения, выполнив все, что сможете, и обработать извлечение ссылок из любого CSS или Javascript в загруженных файлах, чтобы создать список пропущенных вами файлов. Затем второй запуск wget в этом списке ссылок мог бы захватить все, что было пропущено (используйте флаг -i чтобы указать URL-адреса списка файлов).

Если вам нравится Perl, в CPAN есть модуль CSS :: Parser, который может дать вам легкое средство для извлечения ссылок таким образом.

Обратите внимание, что wget только определенную html-разметку ( href / src ) и css uris ( url() ), чтобы определить, какие реквизиты страницы нужно получить. Вы можете попробовать использовать дополнения Firefox, такие как DOM Inspector или Firebug, чтобы выяснить, добавляются ли сторонние изображения, которые вы не получаете, через Javascript – если это так, вам нужно прибегнуть к скрипту или плагину Firefox, чтобы получить их слишком.

Я сделал Webtography для аналогичной цели: https://webjay.github.io/webtography/

Он использует Wget и подталкивает сайт к репозиторию в вашей учетной записи GitHub.

Я использую эти аргументы:

 --user-agent=Webtography --no-cookies --timestamping --recursive --level=1 --convert-links --no-parent --page-requisites --adjust-extension --max-redirect=0 --exclude-directories=blog 

https://github.com/webjay/webtography/blob/master/lib/wget.js#L15-L26

  • Как загрузить весь (активный) форум phpbb?
  • Есть ли способ загрузки в хранилище box.com через командную строку?
  • Давайте будем гением компьютера.