Bagaimana cara menggunakan Wget untuk mengunduh semua gambar ke dalam satu folder, dari URL?

133

Saya menggunakan wget untuk mengunduh semua gambar dari sebuah situs web dan berfungsi dengan baik tetapi ia menyimpan hierarki asli dari situs tersebut dengan semua subfolder dan sehingga gambarnya tersebar. Apakah ada cara sehingga hanya akan mengunduh semua gambar ke dalam satu folder? Sintaks yang saya gunakan saat ini adalah:

wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
geoffs3310
sumber

Jawaban:

194

Coba ini:

wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

Berikut ini beberapa informasi lebih lanjut:

-ndmencegah pembuatan hierarki direktori (yaitu tidak ada direktori ).

-rmemungkinkan pengambilan rekursif. Lihat Unduhan Rekursif untuk informasi lebih lanjut.

-P mengatur awalan direktori tempat semua file dan direktori disimpan.

-Amenetapkan daftar putih untuk hanya mengambil jenis file tertentu. String dan pola diterima, dan keduanya dapat digunakan dalam daftar yang dipisahkan koma (seperti yang terlihat di atas). Lihat Jenis File untuk informasi lebih lanjut.

Jon
sumber
5
Ini sebenarnya tidak berhasil untuk saya. Lokasi penyimpanan saya adalah "." dan itu menyalin seluruh hierarki situs di sana.
Buttle Butkus
2
@ButtleButkus Sepertinya Anda perlu mengacaukan sedikit lebih banyak dengan -Aopsi terima , lihat dokumentasi Wget tentang jenis file . Juga, jika Anda mengunduh ke direktori saat ini, Anda dapat menghapus -Popsi awalan direktori . Jika Anda mengunduh satu jenis file, seperti hanya jpg, gunakan sesuatu seperti wget -r -A.jpg http://www.domain.com. Lihatlah contoh lanjutan yang disediakan oleh dokumentasi Wget.
Jon
Menambahkan -nd ke atas membuatnya bekerja. Anda juga dapat menentukan beberapa -A flags seperti-A "*foo*" -A "*bar*"
Yablargo
1
Jangan lupa untuk menggunakan --level=infatau --level=9999999999karena wgetmungkin akan menyabot pekerjaan karena tingkat kedalaman rekursi maksimum default 5.
user619271
127
wget -nd -r -l 2 -A jpg,jpeg,png,gif http://t.co
  • -nd: tidak ada direktori (simpan semua file ke direktori saat ini; -P directoryubah direktori target)
  • -r -l 2: level rekursif 2
  • -A: ekstensi yang diterima
wget -nd -H -p -A jpg,jpeg,png,gif -e robots=off example.tumblr.com/page/{1..2}
  • -H: span hosts (wget tidak mengunduh file dari berbagai domain atau subdomain secara default)
  • -p: syarat halaman (termasuk sumber daya seperti gambar pada setiap halaman)
  • -e robots=off: jalankan perintah robotos=offseolah-olah itu bagian dari .wgetrcfile. Ini mematikan pengecualian robot yang berarti Anda mengabaikan robots.txt dan tag meta robot (Anda harus tahu implikasi yang menyertainya, berhati-hatilah).

Contoh: Dapatkan semua .jpgfile dari daftar direktori yang patut dicontoh:

$ wget -nd -r -l 1 -A jpg http://example.com/listing/
Lri
sumber
9

Coba yang ini:

wget -nd -r -P /save/location/ -A jpeg,jpg,bmp,gif,png http://www.domain.com

dan tunggu sampai menghapus semua informasi tambahan

orezvani
sumber
Itu tidak bekerja untuk saya. wget -nd -r -P /Users/duraiamuthan/Downloads/images/ -A jpeg,jpg,bmp,gif,png http://www.forbes.com/profile/mark-zuckerberg/
Vivo
5

Menurut halaman manual, flag -P adalah:

-P awalan --directory-prefix = awalan Atur awalan direktori ke awalan. Awalan direktori adalah direktori tempat semua file dan subdirektori lainnya akan disimpan, yaitu bagian atas pohon pengambilan. Standarnya adalah. (direktori saat ini).

Ini berarti bahwa itu hanya menentukan tujuan tetapi di mana harus menyimpan pohon direktori. Itu tidak meratakan pohon menjadi hanya satu direktori . Seperti disebutkan sebelumnya, flag -nd benar-benar melakukan itu.

@Jon di masa depan akan bermanfaat untuk menggambarkan apa yang dilakukan flag sehingga kami memahami cara kerja sesuatu.

Michael Yagudaev
sumber
2

Solusi yang diusulkan sempurna untuk mengunduh gambar dan jika cukup bagi Anda untuk menyimpan semua file dalam direktori yang Anda gunakan. Tetapi jika Anda ingin menyimpan semua gambar dalam direktori yang ditentukan tanpa mereproduksi seluruh hierarki pohon situs, coba tambahkan "cut-dirs" ke baris yang diusulkan oleh Jon.

wget -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.boia.de --cut-dirs=1 --cut-dirs=2 --cut-dirs=3

dalam hal ini cut-dirs akan mencegah wget dari membuat subdirektori hingga tingkat ke-3 dalam hierarki situs web, menyimpan semua file dalam direktori yang Anda tentukan. Anda dapat menambahkan lebih banyak 'cut-dirs' dengan angka yang lebih tinggi jika Anda berurusan dengan situs dengan struktur yang dalam.

hugi coapete
sumber
-7

utilitas wget mengambil file dari World Wide Web (WWW) menggunakan protokol yang banyak digunakan seperti HTTP, HTTPS dan FTP. Utilitas Wget adalah paket yang tersedia secara bebas dan lisensi berada di bawah Lisensi GNU GPL. Utilitas ini dapat menginstal sistem Operasi mirip Unix termasuk Windows dan MAC OS. Ini adalah alat baris perintah non-interaktif. Fitur utama dari Wget adalah ketahanannya. Ini dirancang sedemikian rupa sehingga berfungsi dalam koneksi jaringan yang lambat atau tidak stabil. Wget secara otomatis mulai mengunduh di mana ia ditinggalkan jika ada masalah jaringan. Juga mengunduh file secara rekursif. Itu akan terus mencoba sampai file telah diambil sepenuhnya.

Instal wget di mesin linux sudo apt-get install wget

Buat folder tempat Anda ingin mengunduh file. sudo mkdir myimages cd myimages

Klik kanan pada halaman web dan misalnya jika Anda ingin lokasi gambar klik kanan pada gambar dan salin lokasi gambar. Jika ada beberapa gambar, ikuti di bawah ini:

Jika ada 20 gambar untuk diunduh dari web sekaligus, kisaran mulai dari 0 hingga 19.

wget http://joindiaspora.com/img {0..19} .jpg

Trupti Kini
sumber
2
Jawaban Anda menjelaskan apa itu wget dan bagaimana menggunakannya untuk mengunduh gambar bernomor berurutan ... tidak ada yang terkait dengan pertanyaan awal.
Alastair