Baixar arquivos de uma lista

112

Como posso baixar arquivos (listados em um arquivo de texto) usando wget ou alguma outra forma automática?

Lista de arquivos de amostra:

www.example.com/1.pdf
www.example.com/2.pdf
www.example.com/3.pdf
    
por Sourav 12.02.2012 / 17:39

7 respostas

197

wget tem um sinalizador embutido para isso: wget -i your_list Você pode encontrar esse tipo de coisa lendo man wget

    
por aureianimus 12.02.2012 / 17:56
82

Coloque-os em paralelo com

cat urlfile | parallel --gnu "wget {}"

Por padrão, ele executará tantos processos quantos os núcleos, e você provavelmente aumentará outros 10x se realmente quiser desativá-los rapidamente adicionando "-j 20" após o paralelo.

    
por meawoppl 17.10.2013 / 17:57
9
xargs -i wget 'http://{}'  < your_list
    
por Florian Diesch 12.02.2012 / 17:53
7

parallel tem um sinalizador --arg-file ( -a ) integrado que usará um arquivo de entrada como a origem, para que você possa evitar cat | . Você pode usar

parallel --gnu -a urlfile wget

Ou simplesmente parallel --gnu wget < urlfile

    
por yxogenium 18.06.2016 / 14:01
5
awk '{print "http://" $0;}' list.txt | xargs -l1 wget

em que list.txt é o seu arquivo de lista

    
por flo 12.02.2012 / 17:51
4

Eu vi a resposta de Florian Diesch.

Eu consegui que funcionasse incluindo o parâmetro bqc no comando.

xargs -i wget -bqc 'http://{}' < download.txt

Todos os downloads começaram em paralelo no plano de fundo.

  • -b : fundo. Ir para o fundo imediatamente após o início
  • -q : silencioso. Desativar a saída do wget
  • -c : continuar. Continue recebendo um arquivo parcialmente baixado
por streetlife 04.05.2015 / 18:56
1

Link do arquivo links.txt

Comando para baixar o arquivo de todos os links

    cat links.txt | wget -i
    
por DreamCoder 19.05.2015 / 04:54

Tags