3

Я хочу отразить сайт. Это встроено, как это.

  • abc.com/A/B/1/...
  • abc.com/A/D/2/...
  • abc.com/A/R/3/...
  • abc.com/A/G/4/...
  • abc.com/A/F/5/...
  • abc.com/A/B/6/...

И я только хочу получить все ссылки по этой ссылке:

  • abc.com/A/G/4/...

Есть ли в wget какая-либо команда, чтобы все ссылки начинались только так: abc.com/A/G/4/?

2 ответа2

3

Да, решение -I:

  -I list
   --include-directories=list
       Specify a comma-separated list of directories you wish to follow
       when downloading.  Elements of list may contain wildcards.

Например,

wget http://abc.com/A/G/4/ --no-parent -I /A/G/4
0

Есть пара соответствующих флагов:

-A acclist --accept acclist

(разделенный запятыми шаблон стиля глобуса для имен файлов)

-I list
--include-directories=list

(разделенный запятыми шаблон стиля глобуса для каталогов)

--accept-regex urlregex

(принимает регулярное выражение для полного URL)

Обычно вы также передаете -r для рекурсии, и -l inf противном случае максимальная глубина рекурсии равна 5. Если вы хотите иметь возможность начать и остановить загрузку, -nc "no clobber" избегает повторной загрузки существующих файлов. Для этого также полезно -E (--adjust-extension) , которое добавляет расширение .html к HTML-страницам, в которых его нет; когда расширение присутствует и -nc , wget все равно будет читать URL-адреса из копии файла на диске.

Вот пример загрузки пословного перевода Корана:

wget -E -nc -l inf -nd -r --no-parent 'http://corpus.quran.com/wordbyword.jsp?chapter=1&verse=1' -A '*wordbyword*'

Он начинается с первого стиха, и поскольку каждая страница ссылается на следующие стихи, он в конечном итоге загружает их все. Опция -A ограничивает нас только интересующими нас страницами.

Я думаю, что нужно больше примеров, поэтому, пожалуйста, не стесняйтесь их предлагать, и я постараюсь обновить это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .