如何:在指定的时间间隔内从Wayback Machine下载页面


11

我的意思是在指定的时间段和间隔内从Wayback Machine下载可用的每个页面。例如,我想从2012年1月到2012年12月每天从nature.com下载可用的每个页面。(这不完全是我想要做的,但是已经足够接近了-并提供了一个很好的示例。)

不幸的是,由于Wayback机器的独特工作原理,wget无法正常工作。

似乎Wayback Machine下载器之类的工具只能下载该页面的最新版本。

与IA API进行交互似乎是一条可行的路线,但是我不确定这将如何工作。

谢谢!


您肯定需要为此编写脚本。也许cURL?
PulseJet '17

我认为可以编写脚本并依靠cURL,但是我不熟悉Internet档案库使用的Memento API,并且不认为我以这种方式使用过。
奥兰多·马里内拉(Marlandella)

我需要a)一次执行多个站点,b)在很长的间隔(例如1998到2001)中获取每个站点的快照,并且c)能够指定在该间隔内要拍摄多少个快照。
奥兰多·马里内拉


同样的问题。他们似乎只需要一页,看来WB Machine下载器的文档是否在这样的间隔内有效。
奥兰多·马里内拉(Marlandella)

Answers:


5

该方式wayback的URL的格式如下:

http://$BASEURL/$TIMESTAMP/$TARGET

这里BASEURL通常是http://web.archive.org/web(我常说,因为我不能确定,如果它是唯一的BASEURL)

TARGET不言自明(根据您的情况http://nature.com,或一些类似的网址)

TIMESTAMPYYYYmmddHHMMss进行捕获的时间(在UTC中):

  • YYYY: 年
  • mm:月(2位-01至12)
  • dd:月中的某天(2位-01至31)
  • HH:小时(2位-00至23)
  • MM:分钟(2位-00至59)
  • ss:秒(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。只需删除重复的URL,然后下载页面。

注意:可以大大改进上述脚本,以防REDIRECT将来超过1天的URL使用,但随后它需要解构返回的URL,并调整START为正确的日期值。


太好了,为什么呢?因为我们有事实和证据证明某人何时归档了内容,并且web.archive.org过去已删除了归档的内容。上面的脚本将保存存档的内容。太棒了
DeerSpotter

它只下载主文件,而不下载相关的js,html,css。
目的

实际上,此脚本不会下载任何内容:它仅显示最接近的URL。您可以使用正确的选项将该URL插入wget或插入其他任何URL page-getter(请注意的-I选项curl)。
Samveen

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.