Automatizando o download de fotos de um determinado site

Publicado por Fábio Berbert de Paula em 04/11/2002

[ Hits: 17.552 ]

Blog: https://fabio.automatizando.dev

 


Automatizando o download de fotos de um determinado site



Vamos supor que você esteja navegando por um site que contém 80 fotos turísticas da cidade onde você pretende passar suas próximas férias e para cada foto a ser visualizada, você precisa passar por um link diferente. Com certeza essa é uma tarefa que lhe consumirá muito tempo e como tempo é dinheiro... Seria muito mais fácil ter as 80 fotos armazenadas em disco e visualizá-las usando um software específico como o gPhoto ou GTKSee.

Para que o script abaixo funcione, as fotos devem ter algum sincronismo em seus nomes de arquivos (e.g.: friburgo01.jpg, friburgo02.jpg, friburgo03.jpg...). O site que contém as fotos tem a URL base www.fotosdefriburgo.com.br e todas as fotos encontram-se na URL www.fotosdefriburgo.com.br/fotos/.

Digite o script abaixo num editor de textos e salve o arquivo com o nome "pegafotos.tcl", por exemplo:
# pegafotos.tcl -------------------

puts "Qual é a URL?"
gets stdin URL
puts "Início"
gets stdin inicio
puts "Fim"
gets stdin fim

for {set x $inicio} {$x<=$fim} {incr x} {
if {[string length $x]==1} {
exec wget -c ${URL}0$x.jpg &
} else {
exec wget -c $URL$x.jpg &
}
}
# ------------------------------
Lembre-se que, no meu caso, a primeira foto de Friburgo tem o nome friburgo01.jpg e a última, friburgo80.jpg. Vamos ao trabalho! Digite:

# tclsh pegafotos.tcl

Tclsh é o interpretador de comandos do TCL, que será invocado contendo o conteúdo do script pegafotos.tcl como parâmetro. O interpretador processará as linhas interativamente:

Qual é a URL?
www.fotosdefriburgo.com.br/fotos/friburgo
Início
01
Fim
80

O script irá montar uma estrutura de repetição que fará o download de todas as fotos do site:

wget -c http://www.fotosdefriburgo.com.br/fotos/friburgo01.jpg
wget -c http://www.fotosdefriburgo.com.br/fotos/friburgo02.jpg
wget -c http://www.fotosdefriburgo.com.br/fotos/friburgo03.jpg
...
wget -c http://www.fotosdefriburgo.com.br/fotos/friburgo80.jpg



Atenciosamente,
Fábio Berbert de Paula
fabio@vivaolinux.com.br
Outras dicas deste autor

Salvar automaticamente no Vim

DNS Dinâmico no Linux com ddupdate - DuckDNS

O comando more

Erro: Python - invalid command 'bdist_wheel' [Resolvido]

Restaurando abas no Google Chrome

Leitura recomendada

Sem permissões suficientes para executar /usr/sbin/pppd?

Solução para instalação da placa wifi rtl8723be no Elementary Os Luna e Freya

Migrando do Thunderbird para o Claws sem (muita!) dor

Personalizar mensagens de erro do Squid

Como ativar internet 3G da Brasil Telecom/Oi

  

Comentários
[1] Comentário enviado por makoto_mizuno em 22/02/2004 - 22:32h

Irrelevante...

o wget tem a opção -r que permite fazer mirror.

Ex: wget -r -l1 -A *.jpg -U "Mozilla/4.0" www.urldosite.com

esse comando pega todas imagens *.jpg do site até um nível e ainda se faz passar por Mozilla.

Mas o ideal para esses casso seria usar o httrack que é um software especializado em mirror e poderiamos usar até espressão regular e resume...

[2] Comentário enviado por fabio em 22/02/2004 - 23:29h

Na época em que essa dica foi criada o wget ainda não possuia suporte a filtros por extensão (-A *.jpg). Claro que com o wget puro é mais prático, mas fica a alternativa e uma boa oportunidade de aprender um pouco sobre TCL.

[3] Comentário enviado por jose_maria em 20/04/2004 - 18:11h

Um opcao do wget que eu uso bastante eh
wget -r -nd urldosite
Ele faz o download do site recursivamente mas nao cria diretorios chatos.
Po "wget -r -nd -A *.jpg urldosite" fica bem poderoso. :D




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts