URL wayback
пути форматируются следующим образом:
http://$BASEURL/$TIMESTAMP/$TARGET
Здесь BASEURL
обычно http://web.archive.org/web
(обычно я говорю, так как не уверен, что это единственный BASEURL)
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
на правильное значение даты.