178 votes

Comment télécharger un site web à partir de la Wayback Machine d'archive.org ?

Je veux récupérer tous les fichiers d'un site web donné sur archive.org. Les raisons peuvent être les suivantes :

  • l'auteur original n'a pas archivé son propre site web et il est maintenant hors ligne, je veux en faire un cache public
  • Je suis l'auteur original d'un site web et j'ai perdu une partie de son contenu. Je veux le récupérer
  • ...

Comment faire ?

Il faut tenir compte du fait que la machine wayback d'archive.org est très spéciale : les liens des pages Web ne pointent pas vers l'archive elle-même, mais vers une page Web qui pourrait ne plus exister. JavaScript est utilisé côté client pour mettre à jour les liens, mais une astuce comme un wget récursif ne fonctionnera pas.

129voto

shadow Points 1

J'ai essayé différentes façons de télécharger un site et j'ai finalement trouvé le téléchargeur wayback machine - qui a été construit par Hartator (donc tous les crédits vont à lui, s'il vous plaît), mais je n'ai tout simplement pas remarqué son commentaire à la question. Pour vous faire gagner du temps, j'ai décidé d'ajouter la gemme wayback_machine_downloader comme une réponse séparée ici.

Le site à http://www.archiveteam.org/index.php?title=Restoring répertorie ces moyens de télécharger à partir d'archive.org :

32voto

Woot4Moo Points 37

Cela peut être fait en utilisant un Shell Shell bash combiné à wget .

L'idée est d'utiliser certains des Caractéristiques de l'URL de la machine à remonter le temps :

  • http://web.archive.org/web/*/http://domain/* listera toutes les pages sauvegardées de http://domain/ de manière récursive. Il peut être utilisé pour construire un index des pages à télécharger et éviter les heuristiques pour détecter les liens dans les pages web. Pour chaque lien, il y a également la date de la première version et de la dernière version.
  • http://web.archive.org/web/YYYYMMDDhhmmss*/http://domain/page listera toutes les versions de http://domain/page pour l'année YYYY. Dans cette page, vous trouverez des liens spécifiques vers des versions (avec l'horodatage exact)
  • http://web.archive.org/web/YYYYMMDDhhmmssid_/http://domain/page retournera la page non modifiée http://domain/page à l'heure donnée. Remarquez le id_ jeton.

Ce sont les bases pour construire un script pour tout télécharger d'un domaine donné.

18voto

jcoffland Points 301

Vous pouvez le faire facilement avec wget .

wget -rc --accept-regex '.*ROOT.*' START

ROOT est l'URL racine du site web et START est l'URL de départ. Par exemple :

wget -rc --accept-regex '.*http://www.math.niu.edu/~rusin/known-math/.*' http://web.archive.org/web/20150415082949fw_/http://www.math.niu.edu/~rusin/known-math/

Notez que vous devez contourner le cadre d'enveloppement de l'archive Web pour START URL. Dans la plupart des navigateurs, vous pouvez faire un clic droit sur la page et sélectionner "Afficher uniquement ce cadre".

5voto

Nemo Points 1114

Il existe un outil spécialement conçu à cet effet, Warrick : https://code.google.com/p/warrick/

C'est basé sur le protocole Memento.

1voto

Jeroen Points 1

J'ai pu le faire en utilisant Windows Powershell.

  • allez sur wayback machine et tapez votre domaine

  • cliquez sur les URL

  • copier/coller toutes les urls dans un fichier texte (comme VS CODE). Vous pouvez répéter cette opération car Wayback n'en affiche que 50 à la fois.

  • en utilisant le système de recherche et de remplacement de VS CODE, changez toutes les lignes pour qu'elles ressemblent à ceci

    Invoke-RestMethod -uri "https://web.archive.org/web/20200918112956id_/http://example.com/images/foobar.jpg" -outfile "images/foobar.jpg"

  • l'utilisation de la recherche/remplacement REGEX est utile, par exemple changer le modèle example.com/(.*) a example.com/$1" -outfile "$1"

Le numéro 20200918112956 est DateTime. Ce que vous mettez ici n'a pas beaucoup d'importance, car WayBack va rediriger automatiquement à une entrée valide.

  • Enregistrez le fichier texte en tant que GETIT.ps1 dans un répertoire comme c : \stuff
  • créer tous les répertoires dont vous avez besoin, comme c : \stuff\images
  • ouvrir powershell, cd c:\stuff et exécutez le script.
  • vous devrez peut-être désactiver la sécurité, voir le lien

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X