Zwar hilfreich, frühere Antworten können die zugrunde liegende Frage nicht präzise, zuverlässig und wiederholt lösen. In diesem Beitrag erläutern wir kurz die Schwierigkeiten und bieten dann eine bescheidene httrack
Lösung.
Hintergrund
Bevor wir dazu kommen, sollten Sie sich die gut geschriebene Antwort von mpy durchlesen . In seinem leider vernachlässigten Posten dokumentiert mpy das obskure (und ehrlich verschleierte) Archivsystem der Wayback Machine.
Kein Wunder, dass es nicht hübsch ist. Anstatt Sites nur in einem einzigen Verzeichnis zu archivieren, verteilt The Wayback Machine ephemal eine einzelne Site auf zwei oder mehr numerisch identifizierte gleichgeordnete Verzeichnisse. Zu sagen, dass dies die Spiegelung kompliziert, wäre eine erhebliche Untertreibung.
Das Verständnis der schrecklichen Fallstricke, die dieses Schema darstellt, ist für das Verständnis der Unzulänglichkeit früherer Lösungen von zentraler Bedeutung. Lasst uns damit weitermachen, oder?
Vorherige Lösung 1: wget
Die verwandte StackOverflow-Frage "Alte Website von Waybackmachine wiederherstellen" ist wahrscheinlich der schlimmste Täter in dieser Hinsicht und empfiehlt die wget
Spiegelung von Wayback. Diese Empfehlung ist natürlich grundsätzlich unhaltbar.
Wenn keine komplexen externen URL-Umschreibungen (z. B. Privoxy
) vorhanden sind, wget
können keine mit Wayback archivierten Sites zuverlässig gespiegelt werden. Als mpy- Details unter "Problem 2 + Lösung" müssen Sie bei jedem von Ihnen ausgewählten Spiegelungstool die Möglichkeit haben, nur URLs der Zielwebsite nicht transitiv herunterzuladen . Standardmäßig laden die meisten Spiegelungs-Tools alle URLs herunter, die sowohl zur Ziel-Website als auch zu Websites gehören, auf die von dieser Website aus verlinkt wird - was im schlimmsten Fall "das gesamte Internet" bedeutet.
Ein konkretes Beispiel ist in Ordnung. Wenn das Beispiel Domain - Spiegelung kearescue.com
, Ihre Spiegelung Werkzeug muss :
- Schließen Sie alle übereinstimmenden URLs ein
https://web.archive.org/web/*/http://kearescue.com
. Dies sind Assets, die vom Zielstandort bereitgestellt werden (zhttps://web.archive.org/web/20140521010450js_/http_/kearescue.com/media/system/js/core.js
. B. ). - Alle anderen URLs ausschließen Hierbei handelt es sich um Vermögenswerte, die von anderen Websites bereitgestellt werden und lediglich mit der Ziel-Site verknüpft sind (z
https://web.archive.org/web/20140517180436js_/https_/connect.facebook.net/en_US/all.js
. B. ).
Wenn solche URLs nicht ausgeschlossen werden, werden in der Regel alle oder die meisten der zum Zeitpunkt der Archivierung der Website archivierten Internets verwendet, insbesondere für Websites, die extern gehostete Assets (z. B. YouTube-Videos) einbetten.
Das wäre schlecht. Bietet wget
zwar eine Befehlszeilenoption, --exclude-directories
die ein oder mehrere auszuschließende Muster akzeptiert, jedoch keine regulären Ausdrücke für allgemeine Zwecke. sie sind simpel Klackse deren *
Syntax entspricht null oder mehr Zeichen ohne/
. Da die auszuschließenden URLs beliebig viele /
Zeichen enthalten, wget
können sie nicht zum Ausschluss dieser URLs und daher nicht zum Spiegeln von mit Wayback archivierten Websites verwendet werden. Zeitraum. Ende der unglücklichen Geschichte.
Dieses Problem ist seit mindestens 2009 öffentlich bekannt . Es muss noch geklärt werden. Nächster!
Vorherige Lösung 2: Sammelalbum
Prinz empfiehlt ScrapBook
ein Firefox-Plugin. Ein Firefox-Plugin.
Das war wahrscheinlich alles, was Sie wissen mussten. Während ScrapBook
‚s - Filter by String...
Funktionalität macht das oben genannte Adresse‚Problems 2 + Lösung,‘es ist nicht adressiert das nachfolgende‚Problem 3 + Solution‘- nämlich das Problem der Fremd Duplikate.
Es ist fraglich, ob ScrapBook
das frühere Problem auch adäquat angegangen wird. Wie mpy zugibt:
Obwohl Scrapbook es bisher nicht geschafft hat, die Seite komplett zu packen ...
Unzuverlässige und allzu einfache Lösungen sind keine Lösungen. Nächster!
Vorherige Lösung 3: wget + Privoxy
mpy bietet dann eine robuste Lösung, die sowohl wget
und als auch nutzt Privoxy
. Ist wget
zwar relativ einfach zu konfigurieren, Privoxy
ist aber alles andere als sinnvoll. Oder einfach.
Aufgrund der unüberwindlichen technischen Hürde bei der ordnungsgemäßen Installation, Konfiguration und Verwendung Privoxy
müssen wir die Lösung von mpy noch nicht bestätigen . Es sollte skalierbar und robust funktionieren. Angesichts der Markteintrittsbarrieren ist diese Lösung wahrscheinlich für die Automatisierung im großen Maßstab besser geeignet als der durchschnittliche Webmaster, der versucht, kleine bis mittlere Websites wiederherzustellen.
Ist wget
+ Privoxy
einen Blick wert? Absolut. Die meisten Superbenutzer könnten jedoch mit einfacheren, leichter anwendbaren Lösungen besser bedient werden.
Neue Lösung: httrack
Geben Sie httrack
ein Befehlszeilenprogramm ein, das eine Obermenge der wget
Spiegelungsfunktionen implementiert . httrack
Unterstützt sowohl den musterbasierten URL-Ausschluss als auch die vereinfachte Umstrukturierung von Websites. Ersteres löst die "Problem 2 + Solution" von mpy ; Letzteres "Problem 3 + Lösung".
Ersetzen Sie im folgenden abstrakten Beispiel:
$
durch die URL des obersten Verzeichnisses, in dem die gesamte Zielseite (z'https://web.archive.org/web/20140517175612/http://kearescue.com'
. B. ) archiviert wird .$
durch den gleichen Domainnamen, der beim$
Ausschließen des Präfixes vorhanden isthttp://
(z'kearescue.com'
. B. ).
Auf geht's. Installieren Sie httrack
, öffnen Sie ein Terminalfenster cd
in dem lokalen Verzeichnis, in das Ihre Site heruntergeladen werden soll, und führen Sie den folgenden Befehl aus:
httrack\ $\ '-*'\ '+*/$/*'\ -N1005\ --advanced-progressinfo\ --can-go-up-and-down\ --display\ --keep-alive\ --mirror\ --robots=0\ --user-agent='Mozilla/5.0 (X11;U; Linux i686; en-GB; rv:1.9.1) Gecko/20090624 Ubuntu/9.04 (jaunty) Firefox/3.5'\ --verbose
Nach Fertigstellung sollte das aktuelle Verzeichnis ein Unterverzeichnis für jeden Dateityp enthalten, der von dieser URL gespiegelt wird. Dies umfasst in der Regel mindestens:
css
, die alle gespiegelten CSS-Stylesheets enthält.html
, die alle gespiegelten HTML-Seiten enthält.js
, das alles gespiegelte JavaScript enthält.ico
, enthält ein gespiegeltes Favicon.
Da httrack
alle heruntergeladenen Inhalte intern umgeschrieben werden, um diese Struktur wiederzugeben, sollte Ihre Website jetzt ohne Änderungen durchblendbar sein. Wenn Sie den obigen Befehl vorzeitig angehalten haben und den Download fortsetzen möchten, hängen Sie die --continue
Option an denselben Befehl an und versuchen Sie es erneut.
Das ist es. Keine externen Verfälschungen, fehleranfälliges URL-Umschreiben oder regelbasierte Proxy-Server erforderlich.
Viel Spaß, andere Superuser.