Saya hanya menemukan puf (Pengambil URL paralel) tetapi saya tidak dapat membacanya untuk membaca url dari file; sesuatu seperti
puf < urls.txt
juga tidak bekerja.
Sistem operasi yang diinstal pada server adalah Ubuntu.
Saya hanya menemukan puf (Pengambil URL paralel) tetapi saya tidak dapat membacanya untuk membaca url dari file; sesuatu seperti
puf < urls.txt
juga tidak bekerja.
Sistem operasi yang diinstal pada server adalah Ubuntu.
Jawaban:
Menggunakan GNU Parallel ,
$ parallel -j $ {jobs} wget <urls.txt
atau xargsdari GNU Findutils ,
$ xargs -n 1 -P $ {jobs} wget <urls.txt
di mana ${jobs}adalah jumlah maksimum wgetyang ingin Anda memungkinkan untuk menjalankan secara bersamaan (pengaturan -nuntuk 1mendapatkan satu wgetdoa per baris di urls.txt). Tanpa -j/ -P, parallelakan menjalankan banyak pekerjaan sekaligus sebagai inti CPU (yang tidak selalu masuk akal untuk wgetdiikat oleh IO jaringan), danxargs akan berjalan satu per satu.
Salah satu fitur bagus yang paralleltelah selesai xargsadalah menjaga agar output dari pekerjaan yang dijalankan secara bersamaan terpisah, tetapi jika Anda tidak peduli tentang itu, xargskemungkinan besar akan dipasang sebelumnya.
jobstergantung pada banyak faktor: jalur latensi, jalur bandwidth, kebijakan server jarak jauh, dll.
aria2 melakukan ini.
http://sourceforge.net/apps/trac/aria2/wiki/UsageExample#Downloadfileslistedinafileconcurrently
Contoh: aria2c http://example.org/mylinux.iso
Anda bisa mengimplementasikannya menggunakan Python dan pycurl library. Pycurl library memiliki "multi" antarmuka yang mengimplementasikan loop bahkan sendiri yang memungkinkan beberapa koneksi simultan.
Namun antarmuka agak mirip C dan karena itu sedikit rumit dibandingkan dengan kode lain, lebih "Pythonic".
Saya menulis pembungkus untuk itu yang membangun klien seperti browser yang lebih lengkap di atasnya. Anda bisa menggunakannya sebagai contoh. Lihat modul pycopia.WWW.client . HTTPConnectionManager membungkus multi antarmuka.
Bagian dari halaman manual GNU Parallel berisi contoh wget rekursif paralel.
https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Breadth-first-parallel-web-crawler-mirrorer
HTML diunduh dua kali: Satu kali untuk mengekstraksi tautan dan satu kali untuk mengunduh ke disk. Konten lain hanya diunduh satu kali.
Jika Anda tidak membutuhkan jawaban ephemient rekursif tampaknya jelas.
Para korban unduhan paralell Anda tidak akan terhibur: mereka mengharapkan satu koneksi untuk melayani setiap klien, menyiapkan beberapa koneksi berarti lebih sedikit klien secara keseluruhan. (Yaitu, ini dianggap perilaku kasar).