Ich habe nur puf (Parallel URL Fetcher) gefunden, konnte aber keine URLs aus einer Datei lesen. etwas wie
puf < urls.txt
geht auch nicht.
Das auf dem Server installierte Betriebssystem ist Ubuntu.
ubuntu
wget
parallelism
Mondwanderer
quelle
quelle
Antworten:
Mit GNU Parallel ,
oder
xargs
von GNU Findutils ,wo
${jobs}
ist die maximale Anzahl vonwget
Ihnen gleichzeitig ausgeführt zulassen möchten (Einstellung-n
auf1
einen bekommenwget
Aufruf pro Zeile inurls.txt
). Ohne-j
/-P
,parallel
wird so viele Arbeitsplätze in einer Zeit , als CPU - Kern läuft (was nicht notwendigerweise Sinn für machtwget
durch Netzwerk - IO gebunden), undxargs
wird einen nach dem anderen ausgeführt werden .Eine nette Funktion,
parallel
die vorbeixargs
ist, ist, die Ausgabe der gleichzeitig ausgeführten Jobs getrennt zu halten, aber wenn Sie sich nicht darum kümmern,xargs
ist es wahrscheinlicher, dass sie vorinstalliert ist.quelle
jobs
hängt von vielen Faktoren ab:Das macht aria2.
http://sourceforge.net/apps/trac/aria2/wiki/UsageExample#Downloadfileslistedinafileconcurrently
Beispiel: aria2c http://example.org/mylinux.iso
quelle
Sie können dies mit Python und der Pycurl-Bibliothek implementieren. Die Pycurl-Bibliothek verfügt über die "Multi" -Schnittstelle, die eine eigene gerade Schleife implementiert, die mehrere gleichzeitige Verbindungen ermöglicht.
Das Interface ist jedoch eher C-artig und daher etwas umständlich im Vergleich zu anderem, eher "Pythonic" -Code.
Ich habe einen Wrapper dafür geschrieben, der einen vollständigeren browserähnlichen Client darauf aufbaut. Sie können dies als Beispiel verwenden. Siehe das Modul pycopia.WWW.client . Der HTTPConnectionManager umschließt die Multi-Schnittstelle.
quelle
Dies funktioniert und funktioniert nicht mit lokalem oder entferntem DoS, wenn die richtigen Einstellungen vorgenommen werden:
quelle
Ein Teil der Manpage von GNU Parallel enthält ein Beispiel für ein paralleles rekursives wget.
https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Breadth-first-parallel-web-crawler-mirrorer
HTML wird zweimal heruntergeladen: Einmal zum Extrahieren von Links und einmal zum Herunterladen auf die Festplatte. Andere Inhalte werden nur einmal heruntergeladen.
Wenn Sie die Antwort des Kurzlebigen nicht benötigen, liegt es auf der Hand.
quelle
Die Opfer Ihres Paralell-Downloads werden sich nicht amüsieren: Sie erwarten, dass eine Verbindung für jeden Client bereitgestellt wird, und das Einrichten mehrerer Verbindungen bedeutet insgesamt weniger Clients. (Dh dies wird als unhöfliches Verhalten angesehen).
quelle