Donnerstag, 19. Dezember 2013

Hochzeit-Fotos von ichwuensche.ch automatisiert herunterladen

Heuer war es wieder mal soweit — Bekannte, welche im September 2013 geheiratet und an deren Hochzeit Stephanie und ich teilgenommen haben, haben die Fotos über ichwuensche.ch zugänglich gemacht. Da es mir zu blöd war, mich durch die 12 Web-Seiten voller Hochzeitsbilder zu klicken, habe ich mir ein kleines PHP-Script geschrieben, welches mir die URLs der Fotos generiert. Dafür benötige ich die fortlaufende Nummer des ersten sowie letzten Bildes der Serie; das Script generiert anschliessend automatisiert alle URLs.

<?php
    $base = 'http://www.ichwuensche.ch/images/gallery/';
    $start = 1269245;
    $end = 1269774;
    $suffix = '_l.jpg';
    
    $counter = 0;
    for($i = $start; $i <= $end; $i++) {
        $counter++;
        
        // $middle = 4/4/2/9/6/ if JPEG basename is 1269245
        $middle = strrev($i);
        $middle = substr($middle,0,5);
        $middle = implode('/',str_split($middle)) . '/';
        
        $url = $base . $middle. $i . $suffix;
        echo $url . "\n";
    }
    
    echo "\n" . $counter . "\n";
?>

Anschliessend führt man das Script aus, pipet die Ausgabe in eine Textdatei und lässt dann wget seine Arbeit verrichten:

$ php generate-urls.php > urls.txt
$ wget -i urls.txt
--2013-12-19 16:06:37--  http://www.ichwuensche.ch/images/gallery/4/7/7/9/6/1269774_l.jpg
Verbindungsaufbau zu www.ichwuensche.ch (www.ichwuensche.ch)|85.158.232.45|:80... verbunden.
HTTP-Anforderung gesendet, warte auf Antwort... 200 OK
Länge: 150027 (147K) [image/jpeg]
In »»1269774_l.jpg«« speichern.
...

ACHTUNG: Leider haben die Entwickler der Web-Site nicht viel überlegt: Unter den Total 530 Fotos findet sich auch die Hochzeit eines unbekannten Paares aus dem Thurgau, eine Amerika-Reise eines anderen, ebenfalls unbekannten Paares sowie die wohl fast schon obligatorischen Katzenfotos.

Umgekehrt bedeutet dies, dass ein Script-Kiddie in einer Nacht alle Fotos der Web-Site abräumen könnte. Na dann.

Liked this post? Follow this blog to get more. 

Tags: , , , , , ,
Labels: Web

7 Kommentare Kommentare

Hans sagt:

Hallo Mario, ich habe versucht deinen Script zu Testen, leider habe ich eine Fehlermedldung.

Parse error: parse error, unexpected T_STRING, expecting T_VARIABLE or ‚$‘

Hast du eine Idee?

Freundliche Grüsse
Hans

Mario Aeby sagt:

Hallo Hans

Ich habe das Script kopiert und auf WriteCodeOnline.com eingefügt – klappt tadellos.

In welcher Zeilennummer meldet PHP den Fehler? Welche PHP-Version setzst du ein?

Tschüss
Mario

Hans sagt:

Hallo Mario, Danke für Deine Info. Ich habe PHP auf die Version 5.0 geändert, der Script läuft. Nun habe ich aber mit der Ausgabe in die Textdatei und mit WGET das Problem. Hast du mir einen Script der ich verwenden kann? Freundliche Grüsse Hans

Mario Aeby sagt:

Hallo Hans

Im Artikel ist alles sauber beschrieben. Wenn du es mit diesen Infos nicht selber hinkriegst ist das ein Zeichen dafür, dass du es wohl lieber bleiben lassen solltest … Was hast du eigentlich genau vor?

Tschüss
Mario

Hans sagt:

Guten Abend Mario, ich wollte eigentlich nur die Bilder meiner Tochter herunterladen. Der erste Teil deines Scripts geht, jedoch mit dem zweiten Teil
$ php generate-urls.php > urls.txt
$ wget -i urls.txt
komme ich nicht weiter. Wie bekomme ich die Bilder nun auf meine Festplatte? Ich wäre froh, wenn du mir noch den passenden Script geben könntest. Freundliche Grüsse Hans

Mario Aeby sagt:

Hallo Hans

wget ist ein Unix-Tool, welches bei jeder anständigen Linux-Distribution mit an Bord sein sollte.

Wenn du unter Windows arbeitest, empfehle ich dir, Git for Windows herunterzuladen und zu installieren. Das bringt ein Windows-kompatibles wget mit. Dann einfach die Git Bash (= Terminal, Kommandozeile) starten und wget -i urls.txt ausführen, dann sollten die Bilder heruntergeladen werden.

Alternativ sollten Download-Manager unter Windows wohl auch Textdateien mit URLs einlesen und die URLs automatisiert herunterladen können.

Tschüss
Mario

Hans sagt:

Guten Morgen Mario, danke für Deinen Support, it works, Freundliche Grüsse Hans

Kommentar erfassen