
Este script Bashnão há problema em baixar apenas alguns arquivos, mas preciso baixar mais de cem deles.VisualWGeté capaz de baixar um arquivo de arquivos, mas não consegue renomeá-los.
Alguém conhece um utilitário do Windows que usaria uma lista de texto de duas colunas, onde a coluna 1 conteria o URL completo do arquivo e a coluna 2 conteria o nome a ser usado para renomear?
Responder1
Você também pode usar o Download Accelerator Plus (DAP) para fazer download e renomear.
Você só precisa criar uma lista DAP, importá-la para o aplicativo, selecionar a pasta onde deseja salvar os arquivos e deixar que ele faça o trabalho.
Para criar uma lista DAP, basta abrir um editor de texto e digitar o seguinte para cada arquivo que deseja baixar:
<filelist_index><fileinfo>
<filename>FILENAME.EXT</filename>
<url>FULL_URL_TO_FILE</url>
</fileinfo></filelist_index>
Substitua FILENAME.EXT pelo nome do arquivo desejado (não esqueça do arquivo EXTENSION). Basta usar o MS Excel para consolidar o código, copiá-lo e colá-lo em um arquivo de texto e salvá-lo como um arquivo XXX.DAP. Aqui está um exemplo de planilha:http://ge.tt/6sO1B2g
Responder2
Ou, usando o Windows Powershell ...
$folder = "D:\Output\"
$userAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
$web = New-Object System.Net.WebClient
$web.Headers.Add("user-agent", $userAgent)
$input = "D:\todownload.txt"
$delimit = " "
Get-Content $input |
Foreach-Object {
$line = $_.split($delimit);
$destination_file = ([io.path]::getfilename($line[1]))
"[" + $destination_file + "]" + "Downloading " + $line[0]
try {
$target = join-path $folder $destination_file
$web.DownloadFile($line[0], $target)
} catch {
$_.Exception.Message + ": " + $destination_file
add-content (join-path $folder ("downloader" + ".log")) ("[" + $destination_file + "] " + $_.Exception.Message)
add-content (join-path $folder ("downloader" + ".retry")) ($line -join " ")
}
}
O arquivo de entrada (todownload.txt) está no formato:
http://path.to.download.com/file.jpg 0001_NewFileName_file.jpg
Responder3
Você pode experimentar a extensão do FirefoxDownThemAll!. Ele pode baixar vários links de uma página, você pode filtrar a lista de downloads e também aplicar um padrão de renomeação.
Responder4
perl -MLWP::Simple -n -e '($u,$n)=split;getstore($u,$n)' filenames.txt
(Testado OK)
onde filenames.txt contém algo como
http://foo.com/a/b?parm=x this.dat http://bar.org//d/e/f.html isso.html
O mesmo script em formato mais longo
#!/usr/bin/perl use estrito; usar avisos; use LWP::Simples; abra meu $fh, '<', "filenames.txt" ou morra "não consigo ler filenames.txt porque $!\n"; enquanto () { meu ($url, $novonome) = dividir; getstore($url, $novonome); }
(Não testado)