Die Art und Weise wayback
URLs formatiert sind , sind wie folgt:
http://$BASEURL/$TIMESTAMP/$TARGET
Hier BASEURL
ist normalerweise http://web.archive.org/web
(ich sage normalerweise, da ich nicht sicher bin, ob es die einzige BASEURL ist)
TARGET
ist selbsterklärend (in Ihrem Fall http://nature.com
oder eine ähnliche URL)
TIMESTAMP
ist, YYYYmmddHHMMss
wann die Aufnahme gemacht wurde (in UTC):
YYYY
: Jahr
mm
: Monat (2-stellig - 01 bis 12)
dd
: Tag des Monats (2-stellig - 01 bis 31)
HH
: Stunde (2-stellig - 00 bis 23)
MM
: Minute (2-stellig - 00 bis 59)
ss
: Zweitens (2-stellig - 00 bis 59)
Wenn Sie eine Erfassungszeit anfordern, die nicht vorhanden ist, leitet der Wayback-Computer zur nächsten Erfassung für diese URL weiter, ob in der Zukunft oder in der Vergangenheit.
Mit dieser Funktion können Sie jede tägliche URL mithilfe von curl -I
(HTTP HEAD
) abrufen , um die URLs abzurufen:
BASEURL='http://web.archive.org/web'
TARGET="SET_THIS"
START=1325419200 # Jan 1 2012 12:00:00 UTC (Noon)
END=1356998400 # Tue Jan 1 00:00:00 UTC 2013
if uname -s |grep -q 'Darwin' ; then
DATECMD="date -u '+%Y%m%d%H%M%S' -r "
elif uname -s |grep -q 'Linux'; then
DATECMD="date -u +%Y%m%d%H%M%S -d @"
fi
while [[ $START -lt $END ]]; do
TIMESTAMP=$(${DATECMD}$START)
REDIRECT="$(curl -sI "$BASEURL/$TIMESTAMP/$TARGET" |awk '/^Location/ {print $2}')"
if [[ -z "$REDIRECT" ]]; then
echo "$BASEURL/$TIMESTAMP/$TARGET"
else
echo $REDIRECT
fi
START=$((START + 86400)) # add 24 hours
done
Auf diese Weise erhalten Sie die URLs, die an jedem Tag des Jahres 2012 am nächsten am Mittag liegen. Entfernen Sie einfach die Duplikate und und laden Sie die Seiten herunter.
Hinweis: Das obige Skript kann wahrscheinlich erheblich verbessert werden, um vorwärts zu springen, falls REDIRECT
es sich um eine URL handelt, die länger als 1 Tag in der Zukunft liegt. Dann muss die zurückgegebene URL dekonstruiert und START
auf den richtigen Datumswert angepasst werden.