¿Cómo puedo descargar archivos (que se enumeran en un archivo de texto) usando wget
u otra forma automática?
Lista de archivos de muestra:
www.example.com/1.pdf
www.example.com/2.pdf
www.example.com/3.pdf
wget tiene un indicador incorporado para esto: wget -i your_list
puede encontrar este tipo de cosas leyendoman wget
Ponlos en paralelo con
cat urlfile | parallel --gnu "wget {}"
De manera predeterminada, ejecutará tantos procesos como núcleos, probablemente pueda aumentar esto 10 veces más si realmente desea eliminarlos rápidamente agregando "-j 20" después del paralelo.
xargs -i wget 'http://{}' < your_list
parallel
tiene un indicador incorporado --arg-file
( -a
) que usará un archivo de entrada como fuente, por lo que puede evitarlo cat |
. Puedes usar
parallel --gnu -a urlfile wget
O simplemente parallel --gnu wget < urlfile
awk '{print "http://" $0;}' list.txt | xargs -l1 wget
donde list.txt es su archivo de lista
Vi la respuesta de Florian Diesch.
Lo hice funcionar al incluir el parámetro bqc
en el comando.
xargs -i wget -bqc 'http://{}' < download.txt
Todas las descargas comenzaron en paralelo en segundo plano.
-b
: Antecedentes. Ir al fondo inmediatamente después del inicio-q
: Tranquilo. Desactiva la salida de wget-c
: Hacer continuación. Continuar obteniendo un archivo parcialmente descargadoArchivo de enlace links.txt
Comando para descargar todos los archivos de enlaces
cat links.txt | wget -i
wget -i links.txt
es el comando correcto
Acabo de probar esto:
xargs -a download_file -L1 wget
Esto funciona para mi. Los enlaces dentro del archivo txt deben estar en líneas separadas.