Форматування wayback
URL-адрес полягає в наступному:
http://$BASEURL/$TIMESTAMP/$TARGET
Ось BASEURL
зазвичай http://web.archive.org/web
(я кажу, як правило, не впевнений, якщо це єдиний БАЗОВИЙ)
TARGET
не пояснює себе (у вашому випадку http://nature.com
, чи якусь подібну URL-адресу)
TIMESTAMP
це YYYYmmddHHMMss
коли було зроблено захоплення (в UTC):
YYYY
: Рік
mm
: Місяць (2 цифри - від 01 до 12)
dd
: День місяця (2 цифри - від 01 до 31)
HH
: Година (2 цифри - 00 до 23)
MM
: Хвилина (2 цифри - 00 до 59)
ss
: Другий (2 цифри - 00 до 59)
У випадку, коли ви запитаєте час зйомки, який не існує, машина зворотного перенаправлення перенаправляє до найближчого захоплення для цієї URL-адреси, чи то в майбутньому, чи в минулому.
Ви можете використовувати цю функцію для отримання кожної щоденної URL-адреси curl -I
(HTTP HEAD
) для отримання набору URL-адрес:
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
Ви отримуєте URL-адреси, найближчі до полудня кожного дня 2012 року. Просто видаліть дублікати та завантажте сторінки.
Примітка. Сценарій вище, можливо, може бути значно вдосконалений, щоб перейти вперед, якщо REDIRECT
в майбутньому URL-адреса буде більше ніж 1 день, але тоді вона потребує деконструкції повернутої URL-адреси та коригування START
до правильного значення дати.