Pular para o conteúdo

Automatizando o download de fotos de um determinado site

Dica publicada em Linux / Internet
Fábio Berbert de Paula fabio
Hits: 18.436 Categoria: Linux Subcategoria: Internet
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

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:
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
# 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
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Gizmo no Ubuntu Dapper: The dmix plugin supports only playback stream

Listando o tamanho de todos os arquivos e diretórios ocultos da HOME

Imprimindo repetidamente uma palavra ou frase na tela

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

PHP: Substituindo somente a primeira ocorrência de uma palavra na string

Firefox e Flashplayer com transparência no Linux

Usuários online no Mikrotik (sem hotspot ou pppoe)

Agendar downloads pelo terminal do Linux

Instalando Java 7 no Kubuntu 12.04 LTS

Mozilla Thunderbird no Tray

#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

Entre na sua conta para comentar.