Automatizando o download de fotos de um determinado site

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

[ Hits: 17.539 ]

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

Como renomear arquivos de letras maiúsculas para minúsculas

Como instalar última versão Node.js via repositório no Ubuntu, Debian e derivados

Restringindo acesso ao servidor de FTP

Executar comando na entrada e saída do Vim

Vim - selecionar tudo e copiar fácil

Leitura recomendada

3DSP Wireless Driver no notebook Microboard Ultimate Black - 64bits

Ubuntu - compartilhando conexão via cabo crossover

Instalando o WhatsApp Desktop no Slackware Current 64Bits

Como embutir visualizadores de pdf livres no Firefox

Configurando wireless no Linux com wifi-radar

  

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