Страница содержит ссылки на набор файлов .zip, все из которых я хочу загрузить. Я знаю, что это можно сделать с помощью wget и curl. Как это делается?
Ответы:
Команда такая:
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.
-np
. Если они находятся на другом хосте, вам понадобится --span-host
.
Вышеупомянутое решение не работает для меня. У меня работает только этот:
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
-H
переключатель. Это то, что мешало первому ответу (это то, что я пробовал, прежде чем смотреть на SO).
Для других сценариев с некоторой параллельной магией я использую:
curl [url] | grep -i [filending] | sed -n 's/.*href="\([^"]*\).*/\1/p' | parallel -N5 wget -
-nd
(Не каталоги) флаг удобно , если вы не хотите какие - либо дополнительные каталоги создаются (т.е. всех файлы будут находиться в корневой папке).