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.
ubuntu
wget
parallelism
Moonwalker
sumber
sumber
Jawaban:
Menggunakan GNU Parallel ,
atau
xargs
dari GNU Findutils ,di mana
${jobs}
adalah jumlah maksimumwget
yang ingin Anda memungkinkan untuk menjalankan secara bersamaan (pengaturan-n
untuk1
mendapatkan satuwget
doa per baris diurls.txt
). Tanpa-j
/-P
,parallel
akan menjalankan banyak pekerjaan sekaligus sebagai inti CPU (yang tidak selalu masuk akal untukwget
diikat oleh IO jaringan), danxargs
akan berjalan satu per satu.Salah satu fitur bagus yang
parallel
telah selesaixargs
adalah menjaga agar output dari pekerjaan yang dijalankan secara bersamaan terpisah, tetapi jika Anda tidak peduli tentang itu,xargs
kemungkinan besar akan dipasang sebelumnya.sumber
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
sumber
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.
sumber
Ini berfungsi, dan tidak akan DoS lokal atau jarak jauh, dengan penyesuaian yang tepat:
sumber
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.
sumber
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).
sumber