Como baixar arquivos e renomeá-los usando o nome href?

2

Como você faria o download em massa de arquivos de uma página da Web e também os renomeava usando o nome href (descrição) que eles têm?

A ideia é que os arquivos baixados possuam nomes descritivos, ao contrário dos nomes dos arquivos originais, que são tudo menos isso.

Por exemplo, uma página da web contém o seguinte link

<a href='http://www.example.com/docs/ex160.pdf'>Advanced Foo Bar</a>

Idealmente, eu gostaria de salvá-lo como "Advanced Foo Bar.pdf", mas mesmo "Advanced Foo Bar" seria ótimo, já que eu posso usar um utilitário Bulk renaming para adicionar extensão pdf a centenas de arquivos que eu tenho para fazer o download.

Eu tenho usado a extensão FlashGotAll para download do Firefox, e funciona de forma esplêndida para o download em massa, exceto que não há função de renomeação incorporada.

Eu também posso iniciar o Linux (ou usar o cygwin) e usar o curl ou o wget, se necessário, para esta solução.

    
por Aniti 13.06.2011 / 17:24

1 resposta

1

Assumindo que o conteúdo html é bom parecido com o seu exemplo (ou seja, apenas um href por linha, não dividido em várias linhas, sem mistura de HREF e href, etc), você pode baixar a página e executar

prompt$ grep www.example.com the_page.html | sed 's/.*href="\([^"]\+\)">\([^<]*\)<.*/wget -O "".pdf /' | tee files_to_download
wget -O "Advanced Foo Bar".pdf http://www.example.com/docs/ex160.pdf
...
prompt$

Edite files_to_download, se aplicável, e faça o download executando sh files_to_download .

    
por 13.06.2011 / 20:54