wget ändert den Bildnamen innerhalb der Seite

wget ändert den Bildnamen innerhalb der Seite

Das Bild wird einmal pro nMinute generiert und ich möchte jedes davon in mein lokales Verzeichnis übertragen. Mit dem folgenden Befehl konnte ich das PNG-Bild nicht abrufen:

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

da es von der Site blockiert wird und ich es nicht verwenden kann

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

da sich die Namen der Bilder von Update zu Update ändern.

Das Bild ist jedoch verlinkt http://url.com/home/index.htmlund ich könnte den Dateinamen von dort abrufen. Was ist eine robuste Möglichkeit, dies zu tun? Ich kenne das Suchmuster: Es ist das einzige Bild, das aus dem Verzeichnis aufgerufen wird /home/images/.

Antwort1

Zwei Strategien:

  • index.html grepStrategie

Es funktioniert nur, solange nur eine PNG-Referenz vorhanden ist in 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
  • Browseremulation durch Modifizierung von Request-Headern

Beispiele hierfür sindHier,HierUndHier.

verwandte Informationen