wayback
URLのフォーマット方法は次のとおりです。
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番目(2桁-00から59)
存在しないキャプチャ時間を要求した場合、ウェイバックマシンは、そのURLの最も近いキャプチャに、将来または過去にリダイレクトします。
この機能を使用して、curl -I
(HTTP HEAD
)を使用して各URLを取得し、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
これにより、2012年の各日の正午に最も近いURLが取得されます。重複を削除し、ページをダウンロードするだけです。
注:上記のスクリプトは、おそらくREDIRECT
1日以上先のURLの場合にジャンプするように大幅に改善できますが、返されたURLを分解START
し、正しい日付値に調整する必要があります。