Saya mencoba mengunduh direktori situs web lengkap menggunakan CURL. Perintah berikut ini tidak berfungsi:
curl -LO http://example.com/
Kembali kesalahan: curl: Remote file name has no length!
.
Tetapi ketika saya melakukan ini: curl -LO http://example.com/someFile.type
itu berhasil. Adakah yang tahu cara mengunduh semua file di direktori yang ditentukan? Terima kasih.
wget --no-parent -r http://WEBSITE.com/DIRECTORY
dan juga tanpa--no-parent
- tidak berhasil.HTTP tidak benar-benar memiliki gagasan tentang direktori. Garis miring selain dari tiga yang pertama (
http://example.com/
) tidak memiliki arti khusus kecuali sehubungan dengan..
dalam URL relatif. Jadi kecuali server mengikuti format tertentu, tidak ada cara untuk "mengunduh semua file di direktori yang ditentukan".Jika Anda ingin mengunduh seluruh situs, taruhan terbaik Anda adalah dengan melintasi semua tautan di halaman utama secara rekursif. Curl tidak bisa melakukannya, tetapi wget bisa. Ini akan berfungsi jika situs web tidak terlalu dinamis (khususnya, wget tidak akan melihat tautan yang dibangun oleh kode Javascript). Mulailah dengan
wget -r http://example.com/
, dan lihat di bawah "Opsi Pengambilan Rekursif" dan "Opsi Penerimaan / Tolak Rekursif" di manual wget untuk opsi yang lebih relevan (kedalaman rekursi, daftar pengecualian, dll).Jika situs web mencoba memblokir unduhan otomatis, Anda mungkin perlu mengubah string agen pengguna (
-U Mozilla
), dan mengabaikanrobots.txt
(membuat file kosongexample.com/robots.txt
dan menggunakan-nc
opsi sehingga wget tidak mencoba mengunduhnya dari server).sumber
-e robots=off
. Atau Anda dapat menghindari mengunduhnya dengan menolaknya-R "robots.txt"
.Dalam hal ini,
curl
BUKAN alat terbaik. Anda dapat menggunakannyawget
dengan-r
argumen, seperti ini:Ini adalah bentuk paling dasar, dan dan Anda dapat menggunakan argumen tambahan juga. Untuk informasi lebih lanjut, lihat
manpage
(man wget
).sumber
Ini tidak mungkin. Tidak ada cara standar, yang secara umum diterapkan, bagi server web untuk mengembalikan konten direktori kepada Anda. Sebagian besar server memang menghasilkan indeks HTML direktori, jika dikonfigurasi untuk melakukannya, tetapi output ini tidak standar, atau dijamin dengan cara apa pun. Anda dapat mem-parsing HTML ini, tetapi perlu diingat bahwa formatnya akan berubah dari server ke server, dan tidak akan selalu diaktifkan.
sumber
wget
ataucurl
?Anda dapat menggunakan ekstensi Firefox DownThemAll! Ini akan memungkinkan Anda mengunduh semua file dalam direktori dalam satu klik. Ini juga dapat disesuaikan dan Anda dapat menentukan jenis file apa yang akan diunduh. Ini adalah cara termudah yang saya temukan.
sumber
Anda mungkin menemukan penggunaan untuk ripper situs web di sini, ini akan mengunduh semuanya dan mengubah konten / tautan internal untuk penggunaan lokal. Yang bagus dapat ditemukan di sini: http://www.httrack.com
sumber