Wie kann ich von Skripten generierte Bilder von einer Website herunterladen?

1073
Dr.Elch

Ich versuche eine Website zu spiegeln.

Es folgt ein einfaches Schema von HTM-Dateien, aber es gibt einen Haken. Jede Datei enthält die folgende Zeile:

<img width="100%" src="http://DOMAIN.org/CREATE_IMAGE.php"> 

Ich muss dieses Bild herunterladen, aber httrack und wget ignorieren die Skriptausgaben beim Herunterladen einer Datei.

Das PHP-Skript benötigt keine Parameter. Sie bestimmt, welches Bild intern ausgegeben werden soll. Jede .htm-Datei erhält eine andere Ausgabe. Ich kann also nicht einfach die PHP-Datei aufrufen. Es muss als eine Art Abhängigkeit von der entsprechenden HTM-Datei heruntergeladen werden.

Wie kann ich wget oder httrack oder wirklich jedes andere Tool konfigurieren, um das zu bekommen, was ich brauche?

1

1 Antwort auf die Frage

0
Alex

Sie können die .php-Datei nicht herunterladen und ausführen, da sie serverseitig ausgeführt werden soll.

Wenn die Website wie folgt ist:

<html> ... <img width="100%" src="http://DOMAIN.org/CREATE_IMAGE.php"> ... </html> 

Wenn Sie die Seitenquelle abrufen, können Sie dies nicht wirklich sehen (clientseitig). Was Sie sehen sollten, ist:

<html> ... <img width="100%" src="http://DOMAIN.org/IMAGE_LINK_GENERATED_BY_THE_PHP_SCRIPT"> ... </html> 

Anschließend können Sie die HTML-Datei abrufen, analysieren und das Bild herunterladen. Sie müssen entweder das Muster des Dateinamens oder die möglichen Erweiterungen kennen. Wenn Sie dies nicht tun, können Sie eine Liste möglicher Erweiterungen durchlaufen. Für nur ein Bild sollte es ungefähr so ​​aussehen:

# Get the html for us to parse wget http://DOMAIN.org/index.html -O index.html # List of common image extensions exts=("png" "jpg" "jpeg" "bmp" "gif") for ext in $ do # Parse the html looking for an image # You'll have to adapt the regex, of course # man grep to see what each letter stands for img=`grep -shoiP "DOMAIN\.org/.+\.$" index.html` if [ "$img" = "" ] then continue else break fi done wget $img 

Natürlich musst du das anpassen.