Як завантажити весь каталог та підкаталоги за допомогою wget?


143

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

http://abc.tamu.edu/projects/tzivi/repository/reitions/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файл, у якому нічого не було. Я не можу зрозуміти, що я пропустив.
Vivek Todi

@up: Зауважте, що wget переходить за посиланнями, тому вам потрібен перелік каталогів;)

11
Я знаю, це досить старе. Але те, що я теж знайшов корисним, було -e robots=offперемикачем. ;)
Маттіас В.

2
Чому б не зняти "я забув щось важливе" і просто виправити відповідь ???
користувач1271772

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.