Je n'ai trouvé que puf (récupérateur d'URL parallèle) mais je n'ai pas pu le faire lire les URL d'un fichier; quelque chose comme
puf < urls.txt
ne fonctionne pas non plus.
Le système d'exploitation installé sur le serveur est Ubuntu.
ubuntu
wget
parallelism
Moonwalker
la source
la source
Réponses:
En utilisant GNU Parallel ,
ou
xargs
de GNU Findutils ,où
${jobs}
est le nombre maximum dewget
vous voulez permettre d'exécuter simultanément (mise-n
à1
obtenir unwget
appel par ligneurls.txt
). Sans-j
/-P
,parallel
exécutera autant de tâches à la fois que de cœurs de processeur (ce qui n'a pas nécessairement de sens pourwget
lié par les E / S réseau), etxargs
s'exécutera une à la fois.Une fonctionnalité intéressante qui
parallel
a dépassé lexargs
fait de garder la sortie des travaux exécutés simultanément séparés, mais si vous ne vous en souciez pas, ellexargs
est plus susceptible d'être préinstallée.la source
jobs
dépend de nombreux facteurs: latence du chemin, bande passante du chemin, politiques du serveur distant, etc.aria2 fait cela.
http://sourceforge.net/apps/trac/aria2/wiki/UsageExample#Downloadfileslistedinafileconcurrently
Exemple: aria2c http://example.org/mylinux.iso
la source
Vous pouvez l'implémenter en utilisant Python et la bibliothèque pycurl. La bibliothèque pycurl possède l'interface "multi" qui implémente sa propre boucle paire qui permet plusieurs connexions simultanées.
Cependant, l'interface est plutôt semblable à C et donc un peu lourde par rapport à d'autres codes, plus "Pythonic".
J'ai écrit un wrapper pour cela qui construit un client de type navigateur plus complet par-dessus. Vous pouvez utiliser cela comme exemple. Voir le module pycopia.WWW.client . HTTPConnectionManager encapsule la multi-interface.
la source
Cela fonctionne, et ne sera pas DoS local ou distant, avec des ajustements appropriés:
la source
Une partie de la page de manuel de GNU Parallel contient un exemple de wget récursif parallèle.
https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Breadth-first-parallel-web-crawler-mirrorer
Le HTML est téléchargé deux fois: une fois pour l'extraction des liens et une fois pour le téléchargement sur le disque. Les autres contenus ne sont téléchargés qu'une seule fois.
Si vous n'avez pas besoin de la réponse récursive, l'éphémient semble évident.
la source
Les victimes de votre téléchargement parallèle ne seront pas amusées: elles s'attendent à ce qu'une connexion serve chaque client, la configuration de plusieurs connexions signifie moins de clients dans l'ensemble. (C'est à dire, cela est considéré comme un comportement grossier).
la source