Проблема с рекурсивной загрузкой с помощью 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 для создания статического архива веб-сайта
  • Загрузка нескольких похожих URL-адресов с использованием скобок
  • Статическая компиляция wget
  • Как загрузить много документов на терминал с сервера?
  • инструмент командной строки для одной загрузки торрента (например, wget или curl)
  • WGET Продолжить без --no-check-certificate
  • Команда Wget, которая возвращает всех веб-страниц на веб-сервере
  • Как загрузить файл через SSH-сервер?
  • Как записать iso во время загрузки
  • wget не разрешает относительные ссылки должным образом?
  • Использование переменной даты с помощью wget -post-data
  • Linux и Unix - лучшая ОС в мире.