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 xargsde GNU Findutils ,
$ xargs -n 1 -P $ {jobs} wget <urls.txt
donde ${jobs}está el número máximo de wgetdesea permitir la ejecución simultánea (ajuste -npara 1conseguir una wgetinvocación por línea en urls.txt). Sin -j/ -P, parallelejecutará tantos trabajos a la vez como núcleos de CPU (lo que no necesariamente tiene sentido para wgetenlazado por la red IO), y xargsejecutará uno a la vez.
Una buena característica que parallelha terminado xargses mantener separada la salida de los trabajos que se ejecutan simultáneamente, pero si no le importa, xargses más probable que esté preinstalada.
jobsdepende 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).