Saya ingin perintah yang saya ketik URL, misalnya photos.tumblr.com, dan itu mengunduh semua foto di situs ini dalam folder, tetapi tidak hanya gambar beranda situs. Perintah ini perlu mengunduh gambar dari semua bagian situs, seperti photos.tumblr.com/ph1/1.png / photos.tumblr.com/ph3/4.jpg.
Tolong tunjukkan saya contoh menggunakan url ini: http://neverending-fairytale.tumblr.com/ dan mengujinya sebelum menjawab pertanyaan
Kamu bisa unduh seluruh situs web (Saya akan menggunakan
wget -r -p -l inf -np
), lalu (atau secara bersamaan) menjalankan skrip shell untuk menghapus semua file non-gambar (thefile
perintah dapat digunakan untuk memeriksa apakah file adalah gambar).(Itu
-A/-R
opsi wget tidak dapat diandalkan; mereka hanya memeriksa ekstensi URL (sehingga Anda dapat memfilter menurut .jpg, .jpeg, .png, dll.), tetapi tidak ada persyaratan untuk ini hadir.)sumber
Anda hampir tidak bisa mendapatkan hasil yang baik dengan menggunakan pendekatan brute force yang diberikan sebagian besar perintah satu-liner (meskipun saya menggunakan opsi wget untuk mendapatkan seluruh situs banyak)
Saya menyarankan Anda untuk membuat skrip yang menggunakan beberapa bentuk seleksi bersyarat dan loop untuk benar-benar cocok dan mengikuti jenis tautan yang membawa Anda ke gambar yang Anda inginkan.
Strategi yang biasanya saya ikuti:
grep -o
) untuk mem-parsing tautan;Ini memang jauh lebih rumit daripada satu-liner yang mengambil semuanya, tetapi pengalaman itu mencerahkan. Webscraping adalah seni tersendiri.
Untuk itu, saya juga akan merekomendasikan Python, walaupun sangat mungkin untuk melakukannya dengan Shell Script (bash) jika Anda suka, atau bahasa scripting apa pun (Ruby, PHP, perl, dll.).
Semoga ini membantu.
sumber
Anda dapat menggunakan git repo seperti ini:
https://github.com/nixterrimus/tumbld
Ada juga repo lain yang menyediakan fungsi serupa.
sumber