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


143

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

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

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


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)


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/


1

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

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

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



-1

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

wget -m -np -c --no-check-certificate -R "index.html*" "https://the-eye.eu/public/AudioBooks/Edgar%20Allan%20Poe%20-%2"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.