Как скачать весь каталог и подкаталоги с помощью wget?

143

Я пытаюсь загрузить файлы для проекта, используя его wget, так как сервер SVN для этого проекта больше не работает, и я могу получить доступ к файлам только через браузер. Базовые URL для всех файлов такие же, как

http://abc.tamu.edu/projects/tzivi/repository/revisions/2/raw/tzivi/ *

Как я могу использовать wget(или любой другой подобный инструмент), чтобы загрузить все файлы в этом хранилище, где папка «tzivi» является корневой папкой, а под ней находится несколько файлов и подпапок (до 2 или 3 уровней)?

code4fun
источник
3
Это невозможно, если на сервере нет веб-страницы со списком всех ссылок на нужные вам файлы.
Eddy_Em
1
ты знаешь название файлов?
Кароли Хорват
нет, я не знаю имени всех файлов. Я пробовал wget с рекурсивной опцией, но он тоже не работал. Это потому, что на сервере нет файла index.html, в котором перечислены все внутренние ссылки.
code4fun
Вы пробовали использовать зеркальное отображение в wget?
Томаш Нгуен

Ответы:

193

Вы можете использовать это в оболочке:

wget -r --no-parent http://abc.tamu.edu/projects/tzivi/repository/revisions/2/raw/tzivi/

Параметры:

-r     //recursive Download

и

--no-parent // Don´t download something from the parent directory

Если вы не хотите загружать весь контент, вы можете использовать:

-l1 just download the directory (tzivi in your case)

-l2 download the directory and all level 1 subfolders ('tzivi/something' but not 'tivizi/somthing/foo')  

И так далее. Если вы не вставите ни один -lвариант, wgetбудет использовать -l 5автоматически.

Если вы вставите -l 0файл, вы загрузите весь Интернет, так как wgetбудете переходить по каждой ссылке, которую найдете.


источник
19
Отлично, так что для упрощения для следующего читателя: wget -r -l1 --no-parent http://www.stanford.edu/~boyd/cvxbook/cvxbook_additional_exercises/был ответ для меня. Спасибо за ваш ответ.
изоморфизм
2
Я попробовал вышеуказанную команду, чтобы получить все файлы, http://websitename.com/wp-content/uploads/2009/05но все, что я получил, это index.htmlфайл, в котором ничего не было. Я не могу понять, что я пропустил.
Вивек Тоди
@up: обратите внимание, что wget следует по ссылкам, поэтому вам нужен список каталогов;)
11
Я знаю, что это довольно старый. Но то, что я также нашел полезным, был -e robots=offвыключатель. ;)
Матиас В.
2
Почему бы вам не удалить "Я забыл что-то важное" и просто исправить ответ ???
user1271772
16

Вы можете использовать это в оболочке:

wget -r -nH --cut-dirs=7 --reject="index.html*" \
      http://abc.tamu.edu/projects/tzivi/repository/revisions/2/raw/tzivi/

Параметры:

-r recursively download

-nH (--no-host-directories) cuts out hostname 

--cut-dirs=X (cuts out X directories)
Раджив Ядав
источник
4

используйте команду

wget -m www.ilanni.com/nexus/content/
lanni654321
источник
3
wget -r --no-parent URL --user=username --password=password

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

Вы также можете увидеть больше вариантов в ссылке https://www.howtogeek.com/281663/how-to-use-wget-the-ultimate-command-line-downloading-tool/

Sarkar_lat_2016
источник
1

Вы также можете использовать эту команду:

wget --mirror -pc --convert-links -P ./your-local-dir/ http://www.your-website.com

так что вы получите точное зеркало сайта, который вы хотите скачать

baobab33
источник
1

Эта ссылка просто дала мне лучший ответ:

$ wget --no-clobber --convert-links --random-wait -r -p --level 1 -E -e robots=off -U mozilla http://base.site/dir/

Работал как шарм.

Нелинтон Медейрос
источник
-1

Это работает:

wget -m -np -c --no-check-certificate -R "index.html*" "https://the-eye.eu/public/AudioBooks/Edgar%20Allan%20Poe%20-%2"
Хип Луонг
источник