Gefällt dir dieser Artikel?

wget: Wie kann man eine Bilder-Galerie herunterladen?

erschienen in der Kategorie Software, am 12.12.2012
Schnatterente
Gestern erreichte mich mal wieder eine nennenswerte Computerfrage: Ist es möglich, alle Bilder einer Online-Galerie auf einmal herunterzuladen?

Wie lädt man eine komplette Bilder Galerie herunter? Im Detail steht Marcel vor folgendem Problem. Er will alle Bilder einer Web-Galerie (über 5000 Stück) mit geringem Aufwand downloaden. Erschwerend kommt hinzu, dass die Thumbnails der Galerie auf eine andere Domain (einen Imagehoster) verweisen. Klickt man auf eine der Voransichten, landet man somit erneut auf einer Art Vorschauseite des Drittanbieters. Diese muss man dann auch noch anklicken, um zu einer Seite zu gelangen, auf der die Grafik in Originalgröße eingebettet ist. Mit einem Rechtsklick und dem Menüpunkt "Speichern unter" ist es dann aber immer noch nicht getan, denn über den Bildern liegt eine transparente PNG-Grafik, die verhindern soll, dass man sie herunterlädt. Man muss sich die URL der gewünschten Grafik also erst im Quelltext raussuchen. Bei derart vielen Bildern springt man vermutlich spätestens nach den ersten 500 Images verzweifelt vom Balkon.

Es scheint kaum vernünftige und vor allem kostenlose Tools zu geben, die für so einen Fall ausgelegt wären. Was es aber gibt, ist das sehr hilfreiche, kleine aber mächtige Konsolenwerkzeug "wget", dass für den Zweck geschrieben wurde, einzelne Webressourcen oder gar ganze Internetseiten herunterzuladen. wget gibt es nicht nur für Linux, sondern auch für Windows und Mac OS. Wer mit dem Terminal auf Kriegsfuß steht, kann im Netz auch nach einer GUI für wget Ausschau halten. Meines Wissens gibt es da einige. Aber an sich ist das nicht nötig, denn die Bedienung von wget ist ziemlich einfach. Im Folgenden erkläre ich Schritt für Schritt den Aufbau des benötigten wget-Befehls, der in der Lage ist, alle Galeriebilder herunterzuladen.

  • wget http://www.example.com/
    Dies ist der einfachste wget-Befehl, den es gibt. Er speichert den Quelltext der angegeben Seite. Eingebundene Ressourcen (Bilder, JavaScripts, usw.) werden nicht heruntergeladen.
  • wget -r http://www.example.com/something
    Der Parameter "-r" (rekursiver Download) sorgt dafür, dass nicht nur der Inhalt des angegebenen Links heruntergeladen wird, sondern alle Inhalte (also auch Bilder, JavaScripts, CSS Dateien), die von dieser Start-URL aus erreichbar, bzw. verlinkt sind. Setzt man den Parameter unbedacht, lädt man schnell viel mehr Daten runter, als man eigentlich wollte, denn jede aufgerufene Seite wird wieder nach Links zu anderen Seiten und Daten (innerhalb der gleichen Domain, hier example.com) durchsucht.
  • wget -r --level=2 http://www.example.com/something
    Mit der Angabe des "level" Parameters kann man das Datenaufkommen einschränken. Die Angabe beschränkt die Tiefe der Rekursion. Will man nur die Daten der aktuellen Seite und aller direkt verlinkten Seiten herunterladen, muss man eine Tiefe von 2 wählen.
  • wget --accept=jpg,jpeg -r --level=2 http://www.example.com/something
    Noch ein Parameter ist hinzugekommen. Mit der "accept" Angabe können wir die Downloads auf die Dateitypen einschränken, die uns interessieren, in diesem Fall JPEG-Grafiken.
  • wget --accept=jpg,jpeg -r --level=2 -H http://www.example.com/something
    Die Angabe "-H" bringt wget dazu, im Falle eines rekursiven Downloads auch auf andere Hosts (also andere Domains) zuzugreifen. Im oben beschriebenen Fall ist dies nötig, da die Grafiken ja extern gehostet werden.
  • wget --accept=jpg,jpeg -r --level=2 -H --domains=www.example.com,example2.com http://www.example.com/something
    Mit der Angabe der relevanten "Domains" ist der für das beschriebene Szenario benötigte Befehl fertig zusammengebaut. Die Angabe sorgt dafür, dass nur Inhalte von http://www.example.com (im Beispiel die Seite mit der Bildergalerie) und http://example2.com (die Seite, auf der die Originalgrafiken liegen) heruntergeladen werden. Man sollte diese Einschränkung vornehmen, denn wenn auf einer Internetseite 100 verschiedene Domains verlinkt sind, lädt man unnötig viele Dateien herunter, die man dann hinterher aufräumen, bzw. nach den eigentlich gesuchten Daten durchsuchen muss. Zu beachten ist, dass das Protokoll (http://) bei der Parameterangabe nicht mitgeschrieben wird und dass es einen Unterschied gibt, zwischen URLs die mit "www." beginnen und solchen, bei denen das nicht so ist.


Mit wget kann man eine ganze Menge machen. Das kleine Programm ist mächtiger als manches kommerzielle Downloadtool. Von der Arbeit mit der Konsole sollte man sich (und das gilt auch für Windows-Nutzer) nicht abschrecken lassen. Es gilt für jeden Download, sei es eine Web-Galerie oder irgendetwas anderes, die richtigen Parameter festzulegen. Welche Parameter es gibt, erfährt man durch Aufrufen der Hilfe Funktion: wget --help. Auf den meisten Linux Distributionen wird wget bereits installiert sein oder sich über einen Paketmanager installieren lassen. Eine Windows Version ist hier erhältlich, das Programm muss dann über die Eingabeaufforderung (cmd) bedient werden.

Und nun viel Spaß beim Downloaden!

Geschnatter

3 Kommentare, selbst mitschnattern << < Seite 1/1 > >>
Marcel Schreinert, am 17.12.2012 um 06:18 Uhr
Vielen Dank, das hat mich wirklich weiter gebracht in meiner Arbeit und da es jetzt hier öffentlich ist, viele andere vermutlich auch. Danke.
Mac User, am 20.01.2013 um 00:19 Uhr
Danke, nach 5 Stunden Rumprobiererei war das die Lösung des Problems.
Ferienhaus Schwarzwald, am 23.05.2013 um 16:15 Uhr
Danke für die Infos. WGET ist wirklich klasse. Ich habe bisher OfflineExplorer benutzt. Leider würde mich das nun Geld kosten. Bei der Suche nach eine Alternative bin ich mit deiner Seite fündig geworden und mit der Anleitung hat es sofort funktioniert. Danke Stephen