Offlinekopie einer Website mit wget
Wer auf die Schnelle einen lokalen Mirror seiner Homepage erstellen will, muss nicht auf spezielle Tools zurückgreifen. Das Standardtool wget(1) macht hier einen exzellenten Job:
[code language="css"]wget -m -k -K -E http://www.yoursite.com[/code]
Hiermit wird eine Kopie von der angegeben URL in dem lokalen Ordner www.yoursite.com erstellt. Dabei wird bei dynamischem Content die Dateiendung .html hinzugefügt sowie alle internen Verlinkungen und Pfade angepasst.
Die Bedeutung der verwendeten Parameter im Einzelnen:
-m Optionen für das Spiegeln (-r -N -l inf --no-remove-listing)
-k konvertiert die Links innerhalb der HTML Dokumente
-K Sicherung der Originaldateien vor Konvertierung (Dateiendung .orig)
-E Anhängen der .html Endung
Mehr Optionen und eine genauere Beschreibung liefert man wget.



Christian
Eventuell möchte man noch die Optionen -p und -H hinzufügen.
matthias
-p hört sich auf jeden Fall gut an, auch wenn bei mir im Test keine CSS Dateien oder Bilder fehlten. -H bedeutet dann wohl, dass auch die Daten anderer Hosts heruntergeladen werden, soweit sie verlinkt sind. Gilt dies dann nur für inline Dateien wie Bilder oder auch für externe Links? Ich will ja nicht das ganze Internet runterladen
usp
Das bedeutet dann aber auch, dass bei dynamischem Content nur das geparste Ergebnis geladen wird, sehe ich das richtig? Wenn die php-Dateien geladen würden, wäre das ja ziemlich gefährlich für manche Seiten…
matthias
Es wird nur das Ergebnis geladen, dass du auch im normalen Browser sehen würdest. Läuft ja im Endeffekt alles über den gleichen Webserver, der die PHP, ASP, CFM usw. Skripte an den jeweiligen Interpreter bzw. Compiler schickt.
Christian
zu -H,
ja, so verstehe ich das. In Verbindung mit -l inf ist das natürlich gefährlich. Aber wer wollte nicht schonmal das komplette Internet spiegeln
Ich hab es aber mangels Bedarf nie ausprobiert.
Grüße,
Christian
derstuff
Kann es sein, daß das irgendwie nur eine Ebene tief reicht? Wie ist der Parameter, um wirklich alles zu sichern?
matthias
Durch -m sollte bereits -l inf gesetzt sein. Evtl. ist das – warum auch immer – bei dir anders. Füge zusätzlich den Parameter -l inf hinzu.