Se você instalar o Cygwin , poderá usar Wget para baixar tudo em um arquivo contendo uma lista de URLs.
Coloque todos os URLs em um arquivo chamado urls.txt
, você pode executar este comando:
$ wget -i urls.txt
Como posso baixar 1 milhão de arquivos?
Eu experimentei muitos gerenciadores de downloads, todos eles são muito lentos ao importar lista de URLs, atualmente eu esperei por 20 horas em Download Master , eu também tentei Internet Download Manager e JDownloader , existe algum outro software que possa lidar com a importação e download de URLs mais rapidamente?
No Linux, isso é super fácil com wget
No entanto, estou assumindo que você é um usuário do Windows.
Se este for o caso, você pode obter resultados semelhantes usando o Powershell se estiver usando o Powershell 3 ou superior.
cd
no diretório em que você salvou o arquivo urls.txt. Por exemplo cd C:\Users\jay\Documents
Get-Content urls.txt | ForEach-Object {Invoke-WebRequest $_ -OutFile $(Split-Path $_ -Leaf)}
Se você está procurando eficiência, executar alguns trabalhos no PowerShell é provavelmente uma das melhores abordagens, mas requer um pouco de experiência em scripts.
Eu preenchei um arquivo com um milhão de registros e, em seguida, sincronizei um comando para lê-lo de volta, tirei 13,5s (tenho um HDD padrão de 7.200 RPM).
$down = New-Object "System.Net.WebClient"
Get-Content "C:\YourFile.txt" | Foreach-Object {
$down.DownloadFile($_, $_.Split("\")[-1])
}
Assim como um exemplo básico de um único segmento, mas isso será divertido em segundo plano se o tempo não for essencial. Caso contrário, você poderá dividir o arquivo manualmente ou programaticamente e usar Start-Job { //code here// }
para cada seção.
É claro que isso depende inteiramente do formato do seu arquivo e de como você precisa salvá-lo, mas tudo isso é possível no PowerShell.
Existe um pequeno programa para Windows chamado Mass Download que muitas vezes me ajudou bastante: link . Espero que possa te ajudar!