wget alterando o nome da imagem a partir da página

0

A imagem é gerada uma vez a cada n minutos, e eu quero colocar cada um deles no meu diretório local. Eu não tive sucesso em obter a imagem png usando o comando:

wget -r -l1 --no-parent -A.png http://url.com/home/images/

porque está bloqueado pelo site e não posso usar

wget http://url.com/home/images/filename.png

desde que o nome das imagens mude de atualização para atualização.

No entanto, a imagem está vinculada em http://url.com/home/index.html e eu poderia obter o nome do arquivo de lá. O que é uma maneira robusta de fazer isso? Eu conheço o padrão para procurar: é a única imagem que é chamada do diretório /home/images/ .

    
por Figaro 19.06.2014 / 18:42

1 resposta

2

Duas estratégias:

  • index.html grep strategy

Funciona apenas, desde que exista apenas uma referência png em index.html :

#!/bin/bash
wget http://url.com/home/images/index.html
LINK=$(cat index.html | grep -zPo 'href=.*.png"')
LINK=${LINK#href=\"}; LINK=${LINK%\"}
wget --no-parent "http://url.com/home/images/$LINK"
rm index.html
  • Emulação do navegador modificando cabeçalhos de solicitação

Exemplos de como fazer isso aqui , aqui e aqui .

    
por 19.06.2014 / 19:42

Tags