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 xargs
dari GNU Findutils ,
$ xargs -n 1 -P $ {jobs} wget <urls.txt
di mana ${jobs}
adalah jumlah maksimum wget
yang ingin Anda memungkinkan untuk menjalankan secara bersamaan (pengaturan -n
untuk 1
mendapatkan satu wget
doa per baris di urls.txt
). Tanpa -j
/ -P
, parallel
akan menjalankan banyak pekerjaan sekaligus sebagai inti CPU (yang tidak selalu masuk akal untuk wget
diikat oleh IO jaringan), danxargs
akan berjalan satu per satu.
Salah satu fitur bagus yang parallel
telah selesai xargs
adalah menjaga agar output dari pekerjaan yang dijalankan secara bersamaan terpisah, tetapi jika Anda tidak peduli tentang itu, xargs
kemungkinan besar akan dipasang sebelumnya.
jobs
tergantung 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).