วิธี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 หลัก - 00 ถึง 59)
ในกรณีที่คุณร้องขอเวลาการดักจับที่ไม่มีอยู่เครื่อง wayback จะเปลี่ยนเส้นทางไปยังการจับภาพที่ใกล้ที่สุดสำหรับ 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
เป็นค่าวันที่ที่ถูกต้อง