Sebbene utili, le risposte precedenti non riescono a risolvere in modo conciso, affidabile e ripetibile la domanda di fondo. In questo post, descriviamo brevemente le difficoltà di ciascuno e quindi offriamo una httrack
soluzione basata su modesti .
sfondo
Prima di arrivare a questo, tuttavia, prendere in considerazione la risposta ben scritta di mpy . In h [is | er] tristemente trascurato post, mpy documenta rigorosamente lo schema di archiviazione oscuro (e onestamente offuscato) della Wayback Machine.
Non sorprende che non sia carino. Invece di archiviare i siti in modo sicuro in una singola directory, The Wayback Machine diffonde in modo effimero un singolo sito attraverso due o più directory di fratelli identificate numericamente. Dire che ciò complica il mirroring sarebbe un eufemismo sostanziale.
Comprendere le orribili insidie presentate da questo schema è fondamentale per comprendere l'inadeguatezza delle soluzioni precedenti. Andiamo avanti, vero?
Soluzione precedente 1: wget
La domanda StackOverflow correlata "Ripristina il vecchio sito Web dalla macchina di ritorno" è probabilmente il peggiore offensore in questo senso, raccomandando il wget
mirroring di Wayback. Naturalmente, tale raccomandazione è fondamentalmente non fondata.
In assenza di una complessa riscrittura di URL esterni (ad es. Privoxy
), wget
Non è possibile utilizzare per il mirroring affidabile di siti archiviati con Wayback. Come dettagli mpy in "Problema 2 + Soluzione", qualunque strumento di mirroring tu scelga deve permetterti di scaricare in modo non transitivo solo gli URL appartenenti al sito di destinazione. Per impostazione predefinita, la maggior parte degli strumenti di mirroring scarica in modo transitivo tutti gli URL appartenenti sia al sito di destinazione sia ai siti collegati da quel sito - che, nel peggiore dei casi, significa "l'intera Internet".
Un esempio concreto è in ordine. Quando si esegue il mirroring del dominio di esempio kearescue.com
, lo strumento di mirroring deve :
- Includi tutti gli URL corrispondenti
https://web.archive.org/web/*/http://kearescue.com
. Si tratta di risorse fornite dal sito target (ad es https://web.archive.org/web/20140521010450js_/http_/kearescue.com/media/system/js/core.js
.).
- Escludi tutti gli altri URL. Si tratta di risorse fornite da altri siti semplicemente collegati al sito di destinazione (ad esempio,
https://web.archive.org/web/20140517180436js_/https_/connect.facebook.net/en_US/all.js
).
La mancata esclusione di tali URL in genere attira tutto o la maggior parte di Internet archiviato al momento dell'archiviazione del sito, in particolare per i siti che incorporano risorse ospitate esternamente (ad esempio video di YouTube).
Sarebbe male. Mentre wget
fa fornire una riga di comando --exclude-directories
l'opzione di accettare uno o più modelli di corrispondenza URL da escludere, questi sono non generiche espressioni regolari; sono globs semplicistici la cui *
sintassi corrisponde a zero o più caratteri esclusi/
. Poiché gli URL da escludere contengono arbitrariamente molti /
caratteri, wget
non possono essere utilizzati per escludere questi URL e quindi non possono essere utilizzati per il mirroring di siti archiviati con Wayback. Periodo. Fine della storia sfortunata.
Questo problema è stato registrato almeno dal 2009. Deve ancora essere risolto. Il prossimo!
Soluzione precedente 2: Scrapbook
Prinz consiglia ScrapBook
un plugin per Firefox. Un plugin per Firefox.
Probabilmente era tutto ciò che dovevi sapere. Mentre ScrapBook
's Filter by String...
funzionalità fa indirizzo suddetto 'Problema 2 + Soluzione' esso non affronta la successiva 'Problema 3 + Soluzione' - cioè, il problema di duplicati estranei.
È discutibile se ScrapBook
anche affrontare adeguatamente il problema precedente. Come ammette mpy :
Sebbene Scrapbook non sia riuscito finora a catturare completamente il sito ...
Le soluzioni inaffidabili e eccessivamente semplicistiche sono non soluzioni. Il prossimo!
Soluzione precedente 3: wget + Privoxy
mpy fornisce quindi una soluzione solida sfruttando sia wget
e Privoxy
. Mentre wget
è ragionevolmente semplice da configurare, Privoxy
è tutt'altro che ragionevole. O semplice.
A causa dell'imponderabile ostacolo tecnico di installare, configurare e utilizzare correttamente Privoxy
, dobbiamo ancora confermare la soluzione di mpy . Si dovrebbe lavorare in maniera robusta e scalabile. Date le barriere all'ingresso, questa soluzione è probabilmente più adatta all'automazione su larga scala rispetto al webmaster medio che tenta di recuperare siti di piccole e medie dimensioni.
È wget
+ Privoxy
la pena dare un'occhiata? Assolutamente. Ma la maggior parte dei superutenti potrebbe essere meglio gestita da soluzioni più semplici e facilmente applicabili.
Nuova soluzione: httrack
Enter httrack
, un'utilità della riga di comando che implementa un superset della wget
funzionalità di mirroring. httrack
supporta sia l'esclusione URL pattern-based e la ristrutturazione del sito semplicistico. Il primo risolve "Problem 2 + Solution" di mpy ; quest'ultimo, "Problema 3 + Soluzione".
Nell'esempio astratto di seguito, sostituire:
${wayback_url}
dall'URL della directory di livello superiore che archivia l'intero sito di destinazione (ad es 'https://web.archive.org/web/20140517175612/http://kearescue.com'
.).
${domain_name}
con lo stesso nome di dominio presente ${wayback_url}
escludendo il prefisso http://
(ad es 'kearescue.com'
.).
Eccoci qui. Installa httrack
, apri una finestra di terminale cd
nella directory locale in cui desideri scaricare il tuo sito ed esegui il comando seguente:
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
Al termine, la directory corrente dovrebbe contenere una sottodirectory per ciascun tipo di file rispecchiato da tale URL. Questo di solito include almeno:
css
, contenente tutti i fogli di stile CSS con mirroring.
html
, contenente tutte le pagine HTML con mirroring.
js
, contenente tutto il JavaScript con mirroring.
ico
, contenente una favicon speculare.
Dal momento che httrack
riscrive internamente tutto il contenuto scaricato per riflettere questa struttura, il tuo sito ora dovrebbe essere navigabile così com'è senza modifiche. Se hai interrotto prematuramente il comando precedente e desideri continuare a scaricare, aggiungi l' --continue
opzione allo stesso comando esatto e riprova.
Questo è tutto. Non sono necessarie contorsioni esterne, riscrittura degli URL soggetta a errori o server proxy basati su regole.
Divertiti, compagni superutente.
20110722080716
nell'istantanea, quindi l'-np
opzione di wget non sarà di aiuto.