Essa é pros feras de Shellscript

Iniciado por LedStyle, 26 de Novembro de 2005, 19:45

tópico anterior - próximo tópico

LedStyle

Galera... veja se alguém ai tem uma idéia...


Pensem numa foto localizada no seguinte endereço:

http://www.algumsite.com.br/algumacoisa/alala/lele/lili/a/ab/nomedealguem/xxxxxx_xxxx.jpg

Agora pensem assim. Preciso primeiro de tudo fazer um laço que gere todas as combinações de caracteres possíveis usando números e o sinal "_" (underline) com até 12 dígitos.

Dai eu quero que ele dê um "wget" em cada possibilidade sacaram? O mesmo no endereço ali partindo do a/ab e terminando no z/xz

E o mesmo no "nomedealguem". Todas combinações possíveis de caracteres (letras nesse caso) ali no nome até uns 10 dígitos.

Muito soda né? É viável? Se não for tem como fazer só dos números no final?

Eu sei que parece loucura, mas tem mais de 100mil imagens que quero pegar cada uma com uns 2MB. Se eu for fazer isso manualmente vou levar séculos.

[]s

AlexBR

Cara, não é complicado pra fazer. A primeira coisa que me vem a mente é usar 12 for's aninhados. Talvez, haja uma solução mais elegante, mas essa é a primeira que me surge. Mas... putz! Com um comprimento de 12 caracteres... incluindo letras, números e underline... vai dar muitas combinações. Pelas minhas contas, levando em consideração 26 letras, 10 números (0 até 9) e o underline, são 6.582.952.005.840.035.281 combinações diferentes. Tem certeza que queres baixar tantas imagens assim?

murtog

Se o número do Alex estiver correto, você precisará de uma hardware "retadão" e de muito, muiiiiittttooooo, tempo para testar todos os possíveis endereços. Além do mais, com tantos pings que você dará no server deles, eles acabarão te bloqueando.

:P

Boa sorte, anyway.

eggx.geo

Led,

Os endereços dessas imagens não estão listados em alguma parte do site?
Porque talvez seja mais fácil fazer um robo que leia esses endereços e baixe as imagens.
Egg

Fred

Cara, não sou nenhum expert em programação mas o teu problema se resolve de uma forma simples:
Pelo que entendi, no teu exemplo, você quer baixar todas as fotos dentro dir lili... certo? Se todas as fotos forem jpg, não precisa nem de shellscript :)

wget -c -l1 -r -A *.jpg -np http://www.algumsite.com.br/algumacoisa/alala/lele/lili/

Se tiverem outros formatos faça um shellscript com os outros formatos também :)

wget -c -l1 -r -A *.jpg -np http://www.algumsite.com.br/algumacoisa/alala/lele/lili/
wget -c -l1 -r -A *.gif -np http://www.algumsite.com.br/algumacoisa/alala/lele/lili/
wget -c -l1 -r -A *.tiff -np http://www.algumsite.com.br/algumacoisa/alala/lele/lili/
...
etc

Espero ter ajudado!

eggx.geo

Fred,

Eu fiz um teste com este comando wget.

Só funciona se a listagens de pastas e arquivos for permitida pelo apache ou webserver que estiver rodando.

Por exemplo, eu fiz um teste num endereço que a listagem não é permitida e deu o seguinte:

HTTP requisição enviada, aguardando resposta... 403 Forbidden
15:19:23 ERRO 403: Forbidden.

Mas se não for bloqueado, deve funcionar.
Egg

Fred

Eu nao sei se vai adiantar nesse caso então, mas tenta adicionar também a opção -e robots=off depois do wget

Não tenho como testar porque não tô no linux agora!

eggx.geo

Tentei com o robots=off e também não deu.
No site que estou testando a pagina inicial não é index.html
Acho que se a pagina for index.html (mesmo estando bloqueado a listagem de diretórios) e estiver usando a opções robots, ele vai fazer aquele negócio de procurar nos links do site por imagens .jpg e baixar.
Egg

Fred

qual é o site que você tá tentando?

eggx.geo

Egg