Trace redirecionamento da web no script bash

0

Eu quero fazer um script para baixar a imagem na melhor resolução (não a imagem de visualização) de um link deviantART, como se eu tivesse clicado no botão "Download".

No entanto, parece que o deviantART redireciona o navegador para baixar a imagem de outra fonte, e não consigo encontrar como obter essa fonte através do script bash.

Por exemplo, desejo fornecer este link como entrada:

http://earthsong9405.deviantart.com/art/The-Big-Boys-357700214

E obtenha a imagem localizada aqui:

http://fc05.deviantart.net/fs71/f/2013/077/1/c/the_big_boys_by_earthsong9405-d5wyr92.png

Por meio do endereço fornecido pelo link no botão de download:

_http://www.deviantart.com/download/357700214/the_big_boys_by_earthsong9405-d5wyr92.png?token=add3c3dbf4112b7140930c574a819878509c7ebc&ts=1403209394

    
por Hastur 19.06.2014 / 23:15

1 resposta

0

Até que o código da página seja desse tipo, você pode fazer isso com um pequeno script como o abaixo:

MyUrl=$1

File_Url=$(wget -q -O - "$MyUrl")    # here you put the file html in a variable 
Line=$(echo "$File_Url" |grep -e 'meta name="og:image"')   # select only 1 line
# echo $Line
Img=$(echo $Line |sed -e 's/<meta name="og:image" content="//g' -e 's/">//g')
# echo $File_To_Download
wget -q  $Img

A url da imagem que você está procurando está incluída em uma tag meta name="og:image"
Para fazer o download com wget da página, passe por grep para selecionar uma linha exclusiva , limpa do que não é necessário com sed .
Assim que você obtiver a url de sua imagem (no script dentro da variável Img ), você pode usar novamente wget para baixá-la.

Isto é válido até o código interno da página ser deste tipo. Senão você tem que encontrar outra maneira de selecionar a tag única que é interessante para você.

    
por 25.06.2014 / 15:38