Bagaimana cara mengunduh seluruh direktori dan subdirektori menggunakan wget?


143

Saya mencoba mengunduh file untuk menggunakan proyek wget, karena server SVN untuk proyek itu tidak berjalan lagi dan saya hanya dapat mengakses file melalui browser. URL dasar untuk semua file adalah sama

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

Bagaimana saya bisa menggunakan wget(atau alat serupa lainnya) untuk mengunduh semua file dalam repositori ini, di mana folder "tzivi" adalah folder root dan ada beberapa file dan sub-folder (hingga 2 atau 3 level) di bawahnya?


3
Anda tidak dapat melakukannya jika server tidak memiliki halaman web dengan daftar semua tautan ke file yang Anda butuhkan.
Eddy_Em

1
Anda tahu nama file?
Karoly Horvath

tidak, saya tidak tahu nama semua file. Saya mencoba wget dengan opsi rekursif tetapi tidak berhasil juga. Apakah itu karena server tidak memiliki file index.html yang mencantumkan semua tautan dalam.
code4fun

Apakah Anda mencoba opsi mirroring dari wget?
Tomasz Nguyen

Jawaban:


193

Anda dapat menggunakan ini dalam shell:

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

Parameternya adalah:

-r     //recursive Download

dan

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

Jika Anda tidak ingin mengunduh seluruh konten, Anda dapat menggunakan:

-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')  

Dan seterusnya. Jika Anda tidak memasukkan -lopsi, wgetakan digunakan -l 5secara otomatis.

Jika Anda memasukkan, Anda -l 0akan mengunduh seluruh Internet, karena wgetakan mengikuti setiap tautan yang ditemukannya.


19
Hebat, jadi untuk mempermudah pembaca berikutnya: wget -r -l1 --no-parent http://www.stanford.edu/~boyd/cvxbook/cvxbook_additional_exercises/adalah jawaban untuk saya. Terima kasih jawaban anda
isomorfisma

2
Saya mencoba perintah di atas untuk mendapatkan semua file dari http://websitename.com/wp-content/uploads/2009/05tetapi semua yang saya dapatkan adalah index.htmlfile yang tidak memiliki apa-apa. Saya tidak tahu apa yang saya lewatkan.
Vivek Todi

@up: Perhatikan bahwa wget mengikuti tautan, sehingga Anda memerlukan daftar direktori;)

11
Saya tahu ini sudah cukup tua. Tapi yang menurut saya bermanfaat adalah -e robots=offpergantian. ;)
Matthias W.

2
Mengapa Anda tidak menghapus "Saya lupa sesuatu yang penting" dan hanya memperbaiki jawabannya ???
user1271772

16

Anda dapat menggunakan ini dalam shell:

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

Parameternya adalah:

-r recursively download

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

--cut-dirs=X (cuts out X directories)



1

Anda juga dapat menggunakan perintah ini:

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

sehingga Anda mendapatkan cermin yang tepat dari situs web yang ingin Anda unduh


1

Tautan ini memberi saya jawaban terbaik:

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

Bekerja seperti pesona.


-1

Ini bekerja:

wget -m -np -c --no-check-certificate -R "index.html*" "https://the-eye.eu/public/AudioBooks/Edgar%20Allan%20Poe%20-%2"
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.