Automatizando o download de fotos de um determinado site

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

[ Hits: 17.573 ]

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

Programando em Python no VIM com recurso de auto-completar (python-jedi)

Habilitar highlight na busca do Vim

SuperTux - O

Expressão Regular para Endereço IP

Como extrair um print de um arquivo de vídeo

Leitura recomendada

IRC via telnet

Configurando modem HUAWEI E220 com operadora Tim no Ubuntu 11

Instalação do Firefox 3 Beta 5 em pt-BR no Ubuntu 7.10 (Gutsy Gibbon) ou anterior

aMule 2.2.4: novidades e vantagens de uso

Apache - Forçando o browser a fazer download de determinado tipo de arquivo

  

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