Gibt es ein paralleles wget? So etwas wie fping, aber nur zum Herunterladen?

Gibt es ein paralleles wget? So etwas wie fping, aber nur zum Herunterladen?

Ich habe nur puf (Parallel URL fetcher) gefunden, aber ich konnte es nicht dazu bringen, URLs aus einer Datei zu lesen; so etwas wie

 puf < urls.txt

geht auch nicht.

Das auf dem Server installierte Betriebssystem ist Ubuntu.

Antwort1

Verwenden vonGNU Parallel,

$ parallel -j${jobs}wget < urls.txt

oder xargsvonGNU Findutils,

$ xargs -n 1 -P${jobs}wget < urls.txt

wobei ${jobs}die maximale Anzahl von ist, die gleichzeitig wgetausgeführt werden soll (setzen Sie auf , -num 1einen wgetAufruf pro Zeile in zu erhalten urls.txt). Ohne -j/ werden so viele Jobs gleichzeitig ausgeführt, wie CPU-Kerne vorhanden sind (was bei gebundener Netzwerk-E/A nicht unbedingt sinnvoll ist ) und immer einer nach dem anderen.-Pparallelwgetxargs

Eine nette Funktion parallelbesteht xargsdarin, die Ausgabe gleichzeitig laufender Jobs getrennt zu halten. Wenn Ihnen das jedoch egal ist, xargsist es wahrscheinlicher, dass es vorinstalliert ist.

Antwort2

Antwort3

Sie können dies mit Python und der pycurl-Bibliothek implementieren. Die pycurl-Bibliothek verfügt über die Schnittstelle „multi“, die eine eigene Even-Schleife implementiert, die mehrere gleichzeitige Verbindungen ermöglicht.

Allerdings ähnelt die Schnittstelle eher C und ist daher im Vergleich zu anderem, eher „pythonischem“ Code etwas umständlich.

Ich habe einen Wrapper dafür geschrieben, der einen vollständigeren browserähnlichen Client darauf aufbaut. Sie können das als Beispiel verwenden. Siehe diepycopia.WWW.clientModul. Der HTTPConnectionManager umschließt die Multischnittstelle.

Antwort4

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 Rekursivität nicht benötigen, scheint die Antwort von Ephemient offensichtlich.

verwandte Informationen