Encontrei apenas puf (Buscador de URLs paralelo), mas não consegui ler URLs de um arquivo; algo como
puf < urls.txt
também não funciona.
O sistema operacional instalado no servidor é o Ubuntu.
ubuntu
wget
parallelism
Moonwalker
fonte
fonte
Respostas:
Usando o GNU Parallel ,
ou
xargs
do GNU Findutils ,onde
${jobs}
é o número máximo dewget
você deseja permitir a execução simultânea (ajuste-n
para1
obter umawget
invocação por linha nourls.txt
). Sem-j
/-P
,parallel
executará tantos trabalhos por vez quanto os núcleos da CPU (o que não necessariamente faz sentido para owget
IO da rede) exargs
será executado um de cada vez.Um recurso interessante
parallel
acabouxargs
mantendo a saída dos trabalhos em execução simultânea separados, mas se você não se importa com isso,xargs
é mais provável que esteja pré-instalado.fonte
jobs
depende de muitos fatores: latência do caminho, largura de banda do caminho, políticas de servidor remoto etc.aria2 faz isso.
http://sourceforge.net/apps/trac/aria2/wiki/UsageExample#Downloadfileslistedinafilconcurrently
Exemplo: aria2c http://example.org/mylinux.iso
fonte
Você pode implementar isso usando Python e a biblioteca pycurl. A biblioteca pycurl possui a interface "multi" que implementa seu próprio loop par que permite várias conexões simultâneas.
No entanto, a interface é parecida com C e, portanto, um pouco complicada em comparação com outro código, mais "Pythonic".
Eu escrevi um wrapper para ele que cria um cliente mais completo, semelhante a um navegador, sobre ele. Você pode usar isso como um exemplo. Veja o módulo pycopia.WWW.client . O HTTPConnectionManager envolve a multi interface.
fonte
Isso funciona, e não faz DoS local ou remoto, com os ajustes adequados:
fonte
Parte da página de manual do GNU Parallel contém um exemplo de wget recursivo paralelo.
https://www.gnu.org/software/parallel/man.html#EXAMPLE:-Breadth-first-parallel-web-crawler-mirrorer
O HTML é baixado duas vezes: uma vez para extrair links e uma vez para baixar no disco. Outro conteúdo é baixado apenas uma vez.
Se você não precisa da resposta do epemiente recursivo, parece óbvio.
fonte
As vítimas do seu download paralelo não serão divertidas: elas esperam que uma conexão atenda a cada cliente; configurar várias conexões significa menos clientes em geral. (Ou seja, isso é considerado comportamento rude).
fonte