Encontré solo puf (Buscador de URL paralelo) pero no pude hacerlo leer las URL de un archivo; algo como
puf < urls.txt
tampoco funciona
El sistema operativo instalado en el servidor es Ubuntu.
Encontré solo puf (Buscador de URL paralelo) pero no pude hacerlo leer las URL de un archivo; algo como
puf < urls.txt
tampoco funciona
El sistema operativo instalado en el servidor es Ubuntu.
Respuestas:
Usando GNU Paralelo ,
$ parallel -j $ {jobs} wget <urls.txt
o xargs
de GNU Findutils ,
$ xargs -n 1 -P $ {jobs} wget <urls.txt
donde ${jobs}
está el número máximo de wget
desea permitir la ejecución simultánea (ajuste -n
para 1
conseguir una wget
invocación por línea en urls.txt
). Sin -j
/ -P
, parallel
ejecutará tantos trabajos a la vez como núcleos de CPU (lo que no necesariamente tiene sentido para wget
enlazado por la red IO), y xargs
ejecutará uno a la vez.
Una buena característica que parallel
ha terminado xargs
es mantener separada la salida de los trabajos que se ejecutan simultáneamente, pero si no le importa, xargs
es más probable que esté preinstalada.
jobs
depende de muchos factores: latencia de ruta, ancho de banda de ruta, políticas de servidor remoto, etc.
aria2 hace esto.
http://sourceforge.net/apps/trac/aria2/wiki/UsageExample#Downloadfileslistedinafileconcurrently
Ejemplo: aria2c http://example.org/mylinux.iso
Puede implementar eso usando Python y la biblioteca pycurl. La biblioteca pycurl tiene la interfaz "multi" que implementa su propio bucle par que permite múltiples conexiones simultáneas.
Sin embargo, la interfaz es bastante similar a C y, por lo tanto, un poco engorrosa en comparación con otro código más "pitónico".
Escribí un contenedor para él que construye un cliente más completo similar al navegador. Puedes usar eso como un ejemplo. Vea el módulo de cliente pycopia.WWW.client . El HTTPConnectionManager envuelve la interfaz múltiple.
Parte de la página de manual de GNU Parallel contiene un ejemplo de un wget recursivo paralelo.
https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Breadth-first-parallel-web-crawler-mirrorer
HTML se descarga dos veces: una para extraer enlaces y otra para descargar en el disco. Otro contenido solo se descarga una vez.
Si no necesita la recursividad, la respuesta del ephemient parece obvia.
Las víctimas de su descarga paralela no se divertirán: esperan que una conexión sirva a cada cliente, configurar varias conexiones significa menos clientes en general. (Es decir, esto se considera comportamiento grosero).