Frühere Antworten sind zwar hilfreich, lösen die zugrunde liegende Frage jedoch nicht präzise, zuverlässig und wiederholbar. In diesem Beitrag gehen wir kurz auf die jeweiligen Schwierigkeiten ein und bieten dann eine bescheidene httrack
Lösung an.
Hintergrund
Bevor wir jedoch dazu kommen, sollten wir uns die gut geschriebene Antwort von mpy ansehen . In einem leider vernachlässigten Beitrag dokumentiert mpy rigoros das obskure (und ehrlich verschleierte) Archivschema der Wayback Machine.
Es ist nicht überraschend, dass es nicht schön ist. Anstatt Sites in einem einzigen Verzeichnis zu archivieren, verteilt The Wayback Machine eine einzelne Site vorübergehend auf zwei oder mehr numerisch identifizierte Geschwisterverzeichnisse. Zu sagen, dass dies das Spiegeln kompliziert, wäre eine erhebliche Untertreibung.
Das Verständnis der schrecklichen Fallstricke, die dieses Schema mit sich bringt, ist von zentraler Bedeutung für das Verständnis der Unzulänglichkeit früherer Lösungen. Machen wir weiter, sollen wir?
Vorherige Lösung 1: wget
Die verwandte StackOverflow-Frage "Alte Website von Wayback-Maschine wiederherstellen" ist in dieser Hinsicht wahrscheinlich der schlimmste Verstoß und empfiehlt wget
Wayback-Spiegelung. Natürlich ist diese Empfehlung grundsätzlich nicht richtig.
Kann nicht verwendet werden, um Wayback-archivierte Websites zuverlässig zu spiegelnPrivoxy
, wget
wenn keine komplexen externen URL -Änderungen vorgenommen wurden. Als mpy- Details unter "Problem 2 + Lösung" müssen Sie bei jedem ausgewählten Spiegelungstool zulassen, dass nur URLs heruntergeladen werden, die zur Zielwebsite gehören. Standardmäßig laden die meisten Spiegelungstools alle URLs der Zielwebsite und der von dieser Website verknüpften Websites transitiv herunter. Dies bedeutet im schlimmsten Fall "das gesamte Internet".
Ein konkretes Beispiel ist angebracht. Wenn Sie die Beispieldomäne kearescue.com
spiegeln, muss Ihr Spiegelungstool :
- Schließen Sie alle übereinstimmenden URLs ein
https://web.archive.org/web/*/http://kearescue.com
. Dies sind Assets, die vom Zielstandort bereitgestellt werden (z https://web.archive.org/web/20140521010450js_/http_/kearescue.com/media/system/js/core.js
. B. ).
- Schließen Sie alle anderen URLs aus. Hierbei handelt es sich um Vermögenswerte, die von anderen Sites bereitgestellt werden, auf die lediglich von der Zielsite aus verwiesen wird (z
https://web.archive.org/web/20140517180436js_/https_/connect.facebook.net/en_US/all.js
. B. ).
Wenn solche URLs nicht ausgeschlossen werden, wird in der Regel das gesamte oder der größte Teil des Internets abgerufen, das zum Zeitpunkt der Archivierung der Website archiviert wurde, insbesondere für Websites, in die extern gehostete Elemente (z. B. YouTube-Videos) eingebettet waren.
Das wäre schlimm. Zwar wget
bietet es eine Befehlszeilenoption, --exclude-directories
die ein oder mehrere Muster akzeptiert, die mit auszuschließenden URLs übereinstimmen, doch handelt es sich hierbei nicht um reguläre Ausdrücke für allgemeine Zwecke. Es handelt sich um vereinfachte Globs, deren *
Syntax mit keinem oder mehreren Zeichen außer/
übereinstimmt . Da die auszuschließenden URLs beliebig viele /
Zeichen enthalten, wget
können diese URLs nicht ausgeschlossen und daher nicht zum Spiegeln von Wayback-archivierten Sites verwendet werden. Zeitraum. Ende der unglücklichen Geschichte.
Dieses Problem ist seit mindestens 2009 öffentlich bekannt . Es muss noch behoben 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 tut Adresse der zuvor erwähnte‚Problem 2 + Lösung‘ , ist es nicht die nachfolgende Adresse‚Problem 3 + Solution‘- nämlich das Problem der Fremd Duplikate.
Es ist fraglich, ob ScrapBook
das frühere Problem überhaupt adäquat angegangen wird. Wie mpy zugibt:
Obwohl Scrapbook es bisher nicht geschafft hat, die Seite vollständig zu erfassen ...
Unzuverlässige und zu 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
als auch verwendet Privoxy
. Während wget
es einigermaßen einfach zu konfigurieren ist, Privoxy
ist es alles andere als vernünftig. 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 bestätigen . Es sollte skalierbar und robust funktionieren. Angesichts der Markteintrittsbarrieren eignet sich diese Lösung wahrscheinlich besser für die Automatisierung in großem Maßstab als der durchschnittliche Webmaster, der versucht, kleine bis mittlere Websites wiederherzustellen.
Ist wget
+ Privoxy
einen Blick wert? Absolut. Die meisten Superuser könnten jedoch durch einfachere und leichter anwendbare Lösungen besser bedient werden.
Neue Lösung: httrack
Geben Sie httrack
ein Befehlszeilendienstprogramm ein, das eine Obermenge der wget
Spiegelungsfunktionalität von implementiert . httrack
unterstützt sowohl den musterbasierten URL-Ausschluss als auch die vereinfachte Umstrukturierung von Websites. Ersteres löst mpys "Problem 2 + Lösung"; Letzteres "Problem 3 + Lösung."
Ersetzen Sie im folgenden abstrakten Beispiel:
${wayback_url}
durch die URL des Verzeichnisses der obersten Ebene, in dem die gesamte Zielsite archiviert wird (z 'https://web.archive.org/web/20140517175612/http://kearescue.com'
. B. ).
${domain_name}
durch den gleichen Domainnamen, der unter ${wayback_url}
Ausschluss des Präfix vorhanden ist http://
(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\
${wayback_url}\
'-*'\
'+*/${domain_name}/*'\
-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
Am Ende sollte das aktuelle Verzeichnis ein Unterverzeichnis für jeden von dieser URL gespiegelten Dateityp enthalten. Dies umfasst in der Regel mindestens:
css
, enthält alle gespiegelten CSS-Stylesheets.
html
, enthält alle gespiegelten HTML-Seiten.
js
, enthält alles gespiegelte JavaScript.
ico
, mit einem gespiegelten Favicon.
Da der httrack
gesamte heruntergeladene Inhalt intern neu geschrieben wird, um diese Struktur widerzuspiegeln, sollte Ihre Website jetzt ohne Änderungen durchsucht werden können. 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 wiederholen Sie den Vorgang.
Das ist es. Keine externen Verzerrungen, fehleranfälliges Umschreiben von URLs oder regelbasierte Proxy-Server erforderlich.
Viel Spaß, liebe Superuser.
20110722080716
Schnappschuss zugänglich sind , daher wird die-np
Option von wget nicht helfen.