Проблема с рекурсивной загрузкой с помощью wget

Я пытаюсь узнать, как использовать рекурсивную загрузку с помощью wget с информационной страницы wget.

Например, попробуем загрузить все изображения xkcd . Список всех страниц присутствует в архиве xkcd . На всех страницах есть один png-файл. Файл png присутствует в другом хосте, imgs.xkcd.com.

Я пробовал эту команду:

 wget -r -HD imgs.xkcd.com -l 2 -A.png http://www.xkcd.com/archive/ --random-wait 

Результат:

  xkcd $ tree . 0 directories, 0 files xkcd $ wget -r -HD imgs.xkcd.com -l 2 -A.png http://www.xkcd.com/archive/ --random-wait --2014-01-10 18:49:55-- http://www.xkcd.com/archive/ Resolving www.xkcd.com (www.xkcd.com)... 107.6.106.82 Connecting to www.xkcd.com (www.xkcd.com)|107.6.106.82|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 83226 (81K) [text/html] Saving to: `www.xkcd.com/archive/index.html' 100%[=============================================================================================================>] 83,226 68.3K/s in 1.2s 2014-01-10 18:49:57 (68.3 KB/s) - `www.xkcd.com/archive/index.html' saved [83226/83226] Loading robots.txt; please ignore errors. --2014-01-10 18:49:57-- http://imgs.xkcd.com/robots.txt Resolving imgs.xkcd.com (imgs.xkcd.com)... 107.6.106.82 Reusing existing connection to www.xkcd.com:80. HTTP request sent, awaiting response... 404 Not Found 2014-01-10 18:49:58 ERROR 404: Not Found. Removing www.xkcd.com/archive/index.html since it should be rejected. --2014-01-10 18:49:58-- http://imgs.xkcd.com/static/terrible_small_logo.png Reusing existing connection to www.xkcd.com:80. HTTP request sent, awaiting response... 200 OK Length: 11001 (11K) [image/png] Saving to: `imgs.xkcd.com/static/terrible_small_logo.png' 100%[=============================================================================================================>] 11,001 --.-K/s in 0.05s 2014-01-10 18:49:58 (229 KB/s) - `imgs.xkcd.com/static/terrible_small_logo.png' saved [11001/11001] FINISHED --2014-01-10 18:49:58-- Total wall clock time: 2.9s Downloaded: 2 files, 92K in 1.2s (74.4 KB/s) xkcd $ tree . |-- imgs.xkcd.com | `-- static | `-- terrible_small_logo.png `-- www.xkcd.com `-- archive 4 directories, 1 file xkcd $ 

Это, очевидно, не то, что я хочу. Кажется, что wget отклонил www.xkcd.com/archive/index.html перед www.xkcd.com/archive/index.html как прочитать его и проверить ссылки. Даже если .html добавляется в список accept (как предлагается в ответе), он не загружает изображения. Какая ошибка в команде?

2 Solutions collect form web for “Проблема с рекурсивной загрузкой с помощью wget”

Проблема заключается в вашем ограничении на то, какие ссылки следует соблюдать. Вы установили его только для ссылок на imgs.xkcd.com. Но в / архиве / странице нет ссылок на них прямо – он содержит только ссылки на другие страницы на http://www.xkcd.com, а затем эти страницы содержат ссылку на imgs.xkcd.com.

Поэтому вам также нужно будет разрешить этот домен. Эта команда работает:

 wget -r -HD imgs.xkcd.com,www.xkcd.com -l 2 -A.png http://www.xkcd.com/archive/ --random-wait 

Я думаю, что иногда проблема может быть связана с:

Повторное использование существующего подключения к http://www.xkcd.com:80.

HTTP-запрос отправлен, ожидая ответа … 200 OK

который указывает, что файлы не были загружены, но они были повторно использованы.

Таким образом, я думаю, что удаление существующих файлов в некоторых случаях, таких как index.html (которые могли бы ломать рекурсивную загрузку дальше), также помогло бы.

Или в основном начинать с нуля (без -c ).

  • Как я могу ограничить размер загруженного файла в wget?
  • Как быстро загрузить тысячи файлов?
  • Резюме не удалось загрузить с помощью инструмента командной строки Linux
  • Что такое wget-идиома для curl -o?
  • Как загрузить файлы с веб-страницы, указывающей на каталог?
  • как указать порт пересылки при использовании нескольких служб tsocks?
  • Получить все изображения с веб-сайта
  • Загрузите, добавив после некоторого процентного завершения
  • Возможно ли выполнить результат wget как команды?
  • wget не поддерживает https
  • Использование wget, Какая правильная команда для получения gzip-версии вместо фактического HTML
  • Linux и Unix - лучшая ОС в мире.