Как загрузить все ссылки на файлы .zip на данной веб-странице с помощью wget / curl?


83

Страница содержит ссылки на набор файлов .zip, все из которых я хочу загрузить. Я знаю, что это можно сделать с помощью wget и curl. Как это делается?

Ответы:


126

Команда такая:

wget -r -np -l 1 -A zip http://example.com/download/

Значение параметров:

-r,  --recursive          specify recursive download.
-np, --no-parent          don't ascend to the parent directory.
-l,  --level=NUMBER       maximum recursion depth (inf or 0 for infinite).
-A,  --accept=LIST        comma-separated list of accepted extensions.

16
-nd(Не каталоги) флаг удобно , если вы не хотите какие - либо дополнительные каталоги создаются (т.е. всех файлы будут находиться в корневой папке).
Стив Дэвис

1
Как мне настроить это решение, чтобы оно уходило глубже с данной страницы? Я пробовал -l 20, но wget сразу останавливается.
Wrench

2
Если файлы находятся не в том же каталоге, что и начальный URL-адрес, возможно, вам придется избавиться от -np. Если они находятся на другом хосте, вам понадобится --span-host.
Дэн

84

Вышеупомянутое решение не работает для меня. У меня работает только этот:

wget -r -l1 -H -t1 -nd -N -np -A.mp3 -erobots=off [url of website]

Значение параметров:

-r            recursive
-l1           maximum recursion depth (1=use only this directory)
-H            span hosts (visit other hosts in the recursion)
-t1           Number of retries
-nd           Don't make new directories, put downloaded files in this one
-N            turn on timestamping
-A.mp3        download only mp3s
-erobots=off  execute "robots.off" as if it were a part of .wgetrc


Да, спасибо! Откуда он взялся, не помнил, просто лежал в моих скриптах.
K.-Michael Aye

не знаю извините. задайте новый вопрос! ;)
К.-Майкл Айе

1
+1 за -Hпереключатель. Это то, что мешало первому ответу (это то, что я пробовал, прежде чем смотреть на SO).
Alex

Я получаю сообщение об ошибке «Обязательные аргументы для длинных параметров являются обязательными и для коротких параметров». :(
François Leblanc

6

Для других сценариев с некоторой параллельной магией я использую:

curl [url] | grep -i [filending] | sed -n 's/.*href="\([^"]*\).*/\1/p' |  parallel -N5 wget -
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.