Ich habe gerade wget
um ein PhpBB2-Forum vollständig zu archivieren. Bei PhpBB3 oder neueren Versionen könnte es etwas anders aussehen, aber der grundlegende Ansatz ist wahrscheinlich nützlich.
Ich habe zunächst eine Datei mit Sitzungscookies gefüllt (um um phpbb daran zu hindern, sid= in Links zu setzen), dann habe ich die eigentliche Spiegelung durchgeführt. Dazu habe ich wget 1.20, da 1.18 die --adjust-extension für Nicht-HTML-Dateien (z.B. gifs).
wget https://example.com/forum/ --save-cookies cookies \
--keep-session-cookies
wget https://example.com/forum/ --load-cookies cookies \
--page-requisites --convert-links --mirror --no-parent --reject-regex \
'([&?]highlight=|[&?]order=|posting.php[?]|privmsg.php[?]|search.php[?]|[&?]mark=|[&?]view=|viewtopic.php[?]p=)' \
--rejected-log=rejected.log -o wget.log --server-response \
--adjust-extension --restrict-file-names=windows
Damit wird wget angewiesen, die gesamte Website einschließlich der Requisiten (CSS und Bilder) rekursiv zu spiegeln. Bestimmte URLs werden abgelehnt (übersprungen), vor allem weil sie auf einer statischen Website nicht mehr nützlich sind (z. B. Suche) oder nur leicht unterschiedliche oder sogar identische Ansichten desselben Inhalts darstellen (z. B. viewtopic.php?p=...
gibt nur das Thema zurück, das den angegebenen Beitrag enthält, so dass dieses Thema nicht für jeden einzelnen Beitrag gespiegelt werden muss. Die --adjust-extension
Option bewirkt, dass wget dynamisch generierten HTML-Seiten ein .html hinzufügt, und --restrict-file-names=windows
macht es (unter anderem) zum Ersatz für die ?
mit einer @
so dass Sie das Ergebnis auf einem Webserver ablegen können, ohne dass der Webserver die URLs an der ?
(mit dem normalerweise die Abfrageparameter beginnen).