Bien qu'elles soient utiles, les réponses antérieures ne parviennent pas à résoudre de manière concise, fiable et répétable la question sous-jacente. Dans cet article, nous détaillons brièvement les difficultés de chacun et proposons ensuite une httrack
solution modeste .
Contexte
Avant d'en arriver là, cependant, réfléchissez à la réponse bien écrite de mpy . Dans h [is | er] article malheureusement négligé, mpy documente rigoureusement le schéma d'archivage obscur (et honnêtement obscur) de Wayback Machine.
Sans surprise, ce n'est pas joli. Plutôt que d'archiver sainement des sites dans un seul répertoire, The Wayback Machine répartit de manière éphémère un seul site sur deux ou plusieurs répertoires frères identifiés numériquement. Dire que cela complique la mise en miroir serait un euphémisme substantiel.
Comprendre les horribles pièges présentés par ce schéma est essentiel pour comprendre l'insuffisance des solutions antérieures. Continuons, d'accord?
Solution antérieure 1: wget
La question connexe de StackOverflow "Récupérer l'ancien site Web hors waybackmachine" est probablement le pire contrevenant à cet égard, recommandant la wget
mise en miroir Wayback. Naturellement, cette recommandation est fondamentalement fausse.
En l'absence de réécriture d'URL externes complexes (par exemple, Privoxy
), wget
ne peut pas être utilisé pour mettre en miroir de manière fiable des sites archivés Wayback. En tant que détails mpy sous "Problème 2 + Solution", quel que soit l'outil de mise en miroir que vous choisissez, vous devez autoriser le téléchargement non transitoire uniquement des URL appartenant au site cible. Par défaut, la plupart des outils de mise en miroir téléchargent de manière transitoire toutes les URL appartenant à la fois au site cible et aux sites liés à partir de ce site - ce qui, dans le pire des cas, signifie «Internet tout entier».
Un exemple concret s'impose. Lors de la mise en miroir de l'exemple de domaine kearescue.com
, votre outil de mise en miroir doit :
- Inclure toutes les URL correspondantes
https://web.archive.org/web/*/http://kearescue.com
. Ce sont des actifs fournis par le site cible (par exemple, https://web.archive.org/web/20140521010450js_/http_/kearescue.com/media/system/js/core.js
).
- Exclure toutes les autres URL. Ce sont des actifs fournis par d'autres sites simplement liés à partir du site cible (par exemple,
https://web.archive.org/web/20140517180436js_/https_/connect.facebook.net/en_US/all.js
).
Le fait de ne pas exclure de telles URL entraîne généralement la totalité ou la majeure partie de l'Internet archivé au moment de l'archivage du site, en particulier pour les sites intégrant des ressources hébergées en externe (par exemple, des vidéos YouTube).
Ce serait mauvais. Bien wget
qu'il fournisse une --exclude-directories
option de ligne de commande acceptant un ou plusieurs modèles correspondant aux URL à exclure, il ne s'agit pas d' expressions régulières à usage général; ce sont des globes simplistes dont la *
syntaxe correspond à zéro ou plusieurs caractères à l' exclusion/
. Étant donné que les URL à exclure contiennent arbitrairement de nombreux /
caractères, wget
elles ne peuvent pas être utilisées pour exclure ces URL et ne peuvent donc pas être utilisées pour mettre en miroir des sites archivés par Wayback. Période. Fin d'une histoire malheureuse.
Ce problème est dans le domaine public depuis au moins 2009. Il doit encore être résolu. Prochain!
Solution antérieure 2: Scrapbook
Prinz recommande ScrapBook
, un plugin Firefox. Un plugin Firefox.
C'était probablement tout ce que vous deviez savoir. Alors que ScrapBook
de » Filter by String...
la fonctionnalité ne adresse mentionnée ci - dessus le « problème 2 + Solution, » il ne pas aborder la suite « Problème 3 + Solution » - à savoir le problème des doublons étrangers.
On peut se demander si, ScrapBook
même de manière adéquate, il résout l'ancien problème. Comme l' admet MPY :
Bien que Scrapbook n'ait pas réussi à saisir le site jusqu'à présent ...
Les solutions peu fiables et trop simplistes sont des non-solutions. Prochain!
Solution antérieure 3: wget + Privoxy
mpy fournit alors une solution robuste exploitant à la fois wget
et Privoxy
. Bien qu'il wget
soit raisonnablement simple à configurer, il Privoxy
est tout sauf raisonnable. Ou simple.
En raison de l 'obstacle technique impondérable d' installer, de configurer et d 'utiliser correctement Privoxy
, nous n'avons pas encore confirmé la solution de mpy . Il devrait fonctionner de manière évolutive et robuste. Compte tenu des barrières à l'entrée, cette solution est probablement plus appropriée à l'automatisation à grande échelle que le webmaster moyen tentant de récupérer des sites de petite à moyenne échelle.
Est-ce que wget
+ Privoxy
vaut le détour? Absolument. Mais la plupart des superutilisateurs pourraient être mieux desservis par des solutions plus simples et plus facilement applicables.
Nouvelle solution: httrack
Enter httrack
, un utilitaire de ligne de commande implémentant un surensemble de wget
fonctionnalités de mise en miroir de. httrack
prend en charge l'exclusion d'URL basée sur les modèles et la restructuration simplifiée du site. Le premier résout le "Problème 2 + Solution" de mpy ; ce dernier, «Problème 3 + Solution».
Dans l'exemple abstrait ci-dessous, remplacez:
${wayback_url}
par l'URL du répertoire de niveau supérieur archivant l'intégralité de votre site cible (par exemple, 'https://web.archive.org/web/20140517175612/http://kearescue.com'
).
${domain_name}
par le même nom de domaine présent en ${wayback_url}
excluant le préfixe http://
(par exemple, 'kearescue.com'
).
Et c'est parti. Installez httrack
, ouvrez une fenêtre de terminal, cd
dans le répertoire local dans lequel vous souhaitez que votre site soit téléchargé, et exécutez la commande suivante:
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
Une fois terminé, le répertoire actuel doit contenir un sous-répertoire pour chaque type de fichier mis en miroir à partir de cette URL. Cela comprend généralement au moins:
css
, contenant toutes les feuilles de style CSS en miroir.
html
, contenant toutes les pages HTML en miroir.
js
, contenant tout le JavaScript en miroir.
ico
, contenant un favicon en miroir.
Comme httrack
tout le contenu téléchargé est réécrit en interne pour refléter cette structure, votre site devrait maintenant être consultable tel quel sans modification. Si vous avez interrompu prématurément la commande ci-dessus et souhaitez continuer le téléchargement, ajoutez l' --continue
option à la même commande exacte et réessayez.
C'est ça. Aucune contorsion externe, réécriture d'URL sujette aux erreurs ou serveurs proxy basés sur des règles requis.
Profitez-en, chers super-utilisateurs.
20110722080716
instantané, donc l'-np
option de wget n'aidera pas.