方法:指定した間隔でWayback Machineからページをダウンロードする


11

つまり、指定された期間と間隔でWayback Machineから利用可能な各ページをダウンロードします。たとえば、2012年1月から2012年12月まで、nature.comから毎日利用可能な各ページをダウンロードする必要があります(正確にやりたいことではありませんが、十分に近いので、良い例を示します)。

残念ながら、Waybackマシンがどのように機能するかという独特な性質のため、wgetは機能しません。

Wayback Machineダウンローダーなどのツールは、ページの最新バージョンのみをダウンロードするようです。

IA APIとの対話は実行可能なルートのように思えますが、それがどのように機能するかはわかりません。

ありがとう!


このためのスクリプトを作成する必要があります。たぶんcURL?
-PulseJet

スクリプトを記述してcURLを使用することは可能だと思いますが、インターネットアーカイブが使用するMemento APIには馴染みがなく、このように使用されるのを見たことはありません。
オーランドマリネラ

a)複数のサイトを一度に行う、b)各サイトのスナップショットを長い間隔(たとえば、1998年から2001年)で取得し、c)その間隔で引き継ぐスナップショットの数を指定できる必要があります。
オーランドマリネラ


同じ問題。彼らはただ1つのページを望んでいるようです-WB Machineダウンローダーのドキュメントは、それがそのような間隔で機能するかどうかにかかわらずあいまいです。
オーランドマリネラ

回答:


5

waybackURLのフォーマット方法は次のとおりです。

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が取得されます。重複を削除し、ページをダウンロードするだけです。

注:上記のスクリプトは、おそらくREDIRECT1日以上先のURLの場合にジャンプするように大幅に改善できますが、返されたURLを分解STARTし、正しい日付値に調整する必要があります。


これは素晴らしい、なぜですか?誰かがコンテンツをアーカイブし、web.archive.orgが過去にアーカイブされたコンテンツを削除したという事実と証拠があるからです。上記のこのスクリプトは、アーカイブされたコンテンツを保存します。驚くばかり。
DeerSpotter

ただし、メインファイルのみがダウンロードされ、関連するjs、html、cssはダウンロードされません。
目的

実際、このスクリプトは何もダウンロードしません。最も近いURLを表示するだけです。あなたはにそのURLをプラグインすることができますwgetまたは任意の他のpage-getter適切なオプション(通知を-Iオプションにcurl)。
サンビーン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.