Сделать wget загрузкой ресурсов страницы в другом домене


16

Как вы используете wget для загрузки всего сайта (домен A), когда его ресурсы находятся в другом домене (домен B)?
Я пробовал:
wget -r --level=inf -p -k -E --domains=domainA,domainB http://www.domainA


Вот это да! Никто после всего этого времени?
Парса

Причина, по которой команда не работает, заключается в том, что --domainsсамо по себе использование не включается --span-hosts. Добавление --span-hostsрешило бы проблему. : |
Парса

Ответы:


14
wget --recursive --level=inf --page-requisites --convert-links --html-extension \
     --span-hosts=domainA,domainB url-on-domainA

ОБНОВЛЕНИЕ: я помню, что команда выше работала для меня в прошлом (это был 2010 год, и я тогда использовал GNU Tools для Windows ); однако я должен был изменить это на следующее, когда я хотел использовать это сегодня:

wget --recursive --level=inf --page-requisites --convert-links \
     --adjust-extension --span-hosts --domains=domainA,domainB domainA

Сокращение для этого было бы: wget -rEDpkH -l inf domainA,domainB domainA

  • -r знак равно --recursive
  • -l <depth> знак равно --level=<depth>
  • -E знак равно --adjust-extension
  • -p знак равно --page-requisites
  • -K знак равно --backup-converted
  • -k знак равно --convert-links
  • -D <domain-list> знак равно --domain-list=<domain-list>
  • -H знак равно --span-hosts
  • -np знак равно --no-parent
  • -U <agent-string> знак равно --user-agent=<agent-string>

Руководство по GNU Wget: https://www.gnu.org/software/wget/manual/wget.html


Я получаю: wget: --span-hosts: недопустимое логическое значение включено domainA,domainB'; use или выключено. После включения он не работает.
Мэтью Флэшен

@MatthewFlaschen То, что я здесь написал, сработало для меня. Не могли бы вы привести аргументы, которые вы использовали?
Parsa

У меня нет точной команды, которую я выполнял раньше. Однако у меня та же проблема: wget --recursive --level=inf --page-requisites --convert-links --html-extension --span-hosts=example.org,iana.org example.org я использую GNU Wget 1.13.4 в Debian.
Мэтью Флэшен

3
Попробуйте --span-hosts --domains=example.org,iana.org- я думаю, что это --span-hostsдолжно быть логическое значение, а затем вы используете, --domainsчтобы указать, какие хосты охватывают.
Эрик Милл,

Konklone, --span-hosts - логическое значение с 1.12 и позже, я этого не знал. @ MatthewFlaschen, я обновил ответ. Кстати, это все еще будет работать на 1.11 и более ранних, если вы используете GNU Tools для Windows.
Парса

1

wget --recursive --level = inf - реквизиты страницы --convert-links --html-расширение -rH -DdomainA, domainB domainA


Это отчасти работает. Однако, по некоторым причинам, это не работает, если URL (в конце) является перенаправлением. Кроме того, он также загружает ссылки, а не только реквизиты страниц. Кроме того, -r и --recursive являются одинаковыми.
Мэттью Флэшен

0
wget --page-requisites --convert-links --adjust-extension --span-hosts --domains domainA,domainB domainA

Возможно, вам придется игнорировать файл robots.txt (обратите внимание, что это может быть нарушением некоторых условий обслуживания, и вам следует загрузить необходимый минимум). См. Https://www.gnu.org/software/wget/manual/wget.html#Robot-Exclusion .


-1

Рассмотрите возможность использования HTTrack . У него больше возможностей при сканировании контента на других доменах, чем на wget. Использование wget с --span-hosts, --domains и --accept где недостаточно для моих нужд, но HTTrack сделал свою работу. Я помню, что установка лимита перенаправлений на другие домены очень помогла.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.