Einen Schnappschuss von der Wayback-Maschine herunterladen?

10

Gibt es eine Möglichkeit, einen Schnappschuss einer gesamten Website von der Wayback-Maschine herunterzuladen?

Ich bin mir bewusst, dass wir wget verwenden können, um alte Websites von Wayback Machine wiederherzustellen (z. B. wget -np -e robots=off --mirror --domains=staticweb.archive.org,web.archive.org http://web.archive.org/web/19970708161549/http://www.slackworks.com/), aber ich frage mich, ob dies direkt von der Wayback Machine-Website aus möglich ist.

Franck Dernoncourt
quelle
Sie können immer die gute
alte
Klingt etwas langweilig, wenn Sie für jede Seite der Website fertig sein müssen :-)
Franck Dernoncourt
Um die gesamte Website nutzen zu können wget, benötigen Sie einige weitere Parameter, z. B. --recursive --no-clobber --page-requisites --html-extension --convert-linksCSS, JS und natürlich Bilder.
Gwyneth Llewelyn

Antworten:

4

Es ist nicht möglich, einen Schnappschuss direkt von der Wayback-Maschine herunterzuladen, da dies in den Nutzungsbedingungen nicht zulässig ist .

Aus ihren FAQs :

Können Leute Websites vom Wayback herunterladen?

Unsere Nutzungsbedingungen legen fest, dass Benutzer der Wayback-Maschine keine Daten aus der Sammlung kopieren dürfen.

Hydra
quelle
Das bedeutet nicht, dass die Leute das nicht wollen und auch nicht wollen.
Micheal Johnson
Es kann erwähnenswert sein, dass dieser Abschnitt aus den häufig gestellten Fragen entfernt und durch den folgenden ersetzt wurde: archive.org/about/faqs.php#26 . Einfach ausgedrückt bietet die Wayback-Maschine keine Kopien ihrer eigenen Schnappschüsse. Ihre Sprache scheint jedoch etwas vage zu sein, ob andere Tools, die vom Wayback heruntergeladen werden, zulässig sind oder nicht.
Noirscape
9

Ich bin auf dasselbe Problem gestoßen und habe am Ende einen Ruby-Edelstein codiert.

Installieren:

$ gem install wayback_machine_downloader

Führen Sie dann wayback_machine_downloaderdie Basis-URL der Website aus, die Sie als Parameter abrufen möchten (z. B. example.com):

$ wayback_machine_downloader http://example.com

Weitere Informationen: https://github.com/hartator/wayback-machine-downloader

Hartator
quelle
Gut gemacht! Die gesamte Komplexität von Ruby installieren zu müssen, um dies für eine einzelne Website zum Laufen zu bringen, ist mir jedoch zu viel Mühe ... Ich bevorzuge immer noch die gute alte wgetLösung.
Gwyneth Llewelyn
Sie haben ein Docker-Image. Das größere Problem für mich ist, dass ihre Argumente für die Ausrichtung auf einen bestimmten Zeitraum gebrochen sind. Dies ist ein Problem, wenn Sie Captures für eine Site herunterladen möchten, die groß ist und viele Captures enthält.
AndyO
1

Es gibt einen Dienst, der aus dem Webarchiv http://waybackdownloader.com heruntergeladen werden kann

user3468896
quelle
3
Bitte geben Sie an, ob Sie mit der Website verbunden sind.
Jonsca
2
Es ist eine Sache, Menschen beim Schreiben eines Skripts zum Herunterladen einer Website von der Wayback-Maschine zu helfen. Es ist eine andere Sache, die für einen Dienst berechnet wird, der gegen die Nutzungsbedingungen verstößt.
Micheal Johnson
1

Ich habe ein Skript zum Herunterladen der gesamten Site erstellt:

waybackmachine.sh
#!/usr/bin/env bash
# Wayback machine downloader
#TODO: Remove redundancy (download only newest files in given time period - not all of them and then write over them)
############################
clear

#Enter domain without http:// and www.
domain="google.com"
#Set matchType to "prefix" if you have multiple subdomains, or "exact" if you want only one page 
matchType="domain"

#Set datefilter to 1 if you want to download data from specific time period
datefilter=0
from="19700101120001" #yyyyMMddhhmmss
to="20000101120001" #yyyyMMddhhmmss

#Set this to 1 if your page has lots of captured pages with ? in url (experimental)
swapurlarguments=0
usersign='&' #sign to replace ? with

##############################################################
# Do not edit after this point
##############################################################
#Getting snapshot list
full="http://web.archive.org/cdx/search/cdx?url="
full+="$domain"
full+="&matchType=$matchType"
    if [ $datefilter = 1 ]
        then
            full+="&from=$from&to=$to"
        fi
full+="&output=json&fl=timestamp,original&fastLatest=true&filter=statuscode:200&collapse=original"  #Form request url

wget $full -O rawlist.json #Get snapshot list to file rawlist.json


#Do parsing and downloading stuff
sed 's/\"//g' rawlist.json  > list.json #Remove " from file for easier processing
rm rawlist.json #Remove unnecessary file
i=0; #Set file counter to 0
numoflines=$(cat list.json | wc -l ) #Fill numoflines with number of files to download
while read line;do # For every file
        rawcurrent="${line:1:${#line}-3}" #Remove brackets from JSON line
    IFS=', ' read -a current <<< "$rawcurrent" #Separate timestamp and url
    timestamp="${current[0]}"
    originalurl="${current[1]}"
    waybackurl="http://web.archive.org/web/$timestamp" 
    waybackurl+="id_/$originalurl" #Form request url
    file_path="$domain/"
    sufix="$(echo $originalurl | grep / | cut -d/ -f2- | cut -d/ -f3-)"
     [[ $sufix = "" ]] && file_path+="index.html" || file_path+="$sufix" #Determine local filename
clear
echo " $i out of $numoflines" #Show progress
echo "$file_path"
mkdir -p -- "${file_path%/*}" && touch -- "$file_path" #Make local file for data to be written
    wget -N $waybackurl -O $file_path #Download actual file
    ((i++))
done < list.json

#If user chose, replace ? with usersign
    if [ $swapurlarguments = 1 ]
        then
            cd $domain
            for i in *; do mv "$i" "`echo $i | sed "s/\?/\$usersign/g"`"; done #Replace ? in filenames with usersign
            find ./ -type f -exec sed -i "s/\?/\$usersign/g" {} \; #Replace ? in files with usersign
        fi
Lazanet
quelle
1
Es ist besser, wichtige Inhalte des Links als Antwort hinzuzufügen.
Serenesat
1
Ich glaube, dass das ganze Skript die Antwort ist
Lazanet
Das war ein guter Versuch, aber ich befürchte, dass es nicht mehr funktioniert ...
Gwyneth Llewelyn
-1

Vielleicht können Sie einen Wayback-Downloader wie http://www.waybackmachinedownloader.com oder http://www.waybackmachinedownloads.com ausprobieren

Beide dieser beiden Websites verfügen über eine kostenlose Demo, mit der Sie einige Seiten von der Archiv-URL entfernen können, um sicherzustellen, dass das Skript funktioniert.

Es gibt andere Tools, aber ich habe sie nicht getestet, daher kann ich kein Feedback geben.

mohamed
quelle
1
Bitte fügen Sie der Antwort wesentliche Inhalte des Links hinzu, um ihn nützlicher zu machen, da die Antwort nur auf Links unbrauchbar wird, wenn sich der Link geändert hat.
Serenat