Das Tool wget bietet eine unglaubliche Funktionsfülle. Ich brauche es dazu, dynamisch erzeugte Webseiten zu archvieren.
Diese können nachher mit einem Browser als Dateien geöffnet werden, ohne Webserver. Dazu rufe ich wget folgendermassen auf:
wget -r -k -nv -E -e robots=off -l 0 http://server.ch/
Die interessanten Parameter sind:
In Version 1.8.1 hat wget zwei Probleme bei diesem Einsatzgebiet:
Erstens interpretiert es css nicht, dass heisst Hintergrundbilder die im Stil von style="background-image:url(img/bg.jpg)" referenziert sind, werden nicht heruntergeladen.
Zweitens sind die resultierenden Dateien nicht ganz perfekt: Fragezeichen im Query-String als ? im Dateinamen. Unter Linux ist das Legal aber ungewöhnlich, unter Windows (FAT) unmöglich. Weiter werden Leerzeichen ja als %20 kodiert. Wenn aber ein Browser auf das Filesystem zugreift, wird %20 als Leerzeichen betrachtet und die Datei nicht gefunden.
Das Problem mit ungültigen Zeichen im Dateinamen löse ich mit dem Shellskript fixwget. Es ersetzt ?, %20 und kümmert sich darum, Stylesheets die nicht die Endung .css haben, umzubenennen.
fixwget kann als Attachment dieser Seite heruntergeladen werden. Kopieren mit mv fixwget.txt /usr/local/bin/fixwget und mit chmod a+x /usr/local/bin/fixwget ausführbar machen. Das Skript wird ohne Parameter im Verzeichnis der heruntergeladenen Webseite aufgerufen. Achtung, das Skript ist nicht sehr effizient. Für grössere Seiten wird es einige Minuten laufen...
Anmerkung (die nichts mit wget zu tun hat, aber mit Fragezeichen im Dateinamen): Diese Fragezeichen müssen nicht zwingend das ASCII-Zeichen ? bedeuten, sondern können auch für ein mit dieser Zeichentabelle nicht darstellbares Symbol stehen. Wer so eine Datei von Windows aus über Samba anschaut, sieht statt dem Fragezeichen ein kleines Viereck.
Eine weiterer Aufruf, um z.B. die Bilder aus einer Bildergalerie alle verlinkten Bilder herunterzuladen:
wget -r -nv -nd -np -l 2 -Dserver.ch http://www.server.ch/thumbnailpage.htm
Wobei thumbnailpage.htm die Seite mit den kleinen Vorschaubildchen ist, die als Links auf die eigentlichen Bilder gemacht sind. Danach kann man die html, css und ev. weitere Dateien entfernen. Folgende zusätzliche Parameter werden gebraucht:
| Attachment | Size |
|---|---|
| fixwget - kopieren nach /usr/local/bin und ausführbar machen | 4.64 KB |