特定のWebサイトのすべてのファイルをarchive.orgで入手したいです。理由は次のとおりです。
それ、どうやったら出来るの ?
Archive.orgのウェイバックマシンは非常に特殊であることを考慮に入れると、Webページのリンクはアーカイブ自体を指すのではなく、もはや存在しない可能性のあるWebページを指すのです。 JavaScriptはクライアントサイドでリンクを更新するために使用されますが、再帰的なwgetのようなトリックは機能しません。
私はサイトをダウンロードするためにさまざまな方法を試してみましたが、ついに私は以前にHartatorによって言及されたwayback machine downloaderを発見しました。時間を節約するために、ここでは個別の回答としてwayback_machine_downloader gemを追加することにしました。
http://www.archiveteam.org/index.php?title=Restoring にあるサイトには、archive.orgからダウンロードする方法がリストされています。
これは、 bashシェルスクリプトとwget
を組み合わせて使用できます。
考え方は、ウェイバックマシンの URL機能 のいくつかを使用することです。
http://web.archive.org/web/*/http://domain/*
はhttp://domain/
から保存されたすべてのページを再帰的にリストします。ダウンロードするページのインデックスを作成し、Webページ内のリンクを検出するヒューリスティックを回避するために使用できます。リンクごとに、最初のバージョンと最後のバージョンの日付もあります。http://web.archive.org/web/YYYYMMDDhhmmss*/http://domain/page
は、YYYY年のすべてのバージョンのhttp://domain/page
を一覧表示します。そのページ内に、バージョンへの特定のリンクが(正確なタイムスタンプ付きで)見つかります。http://web.archive.org/web/YYYYMMDDhhmmssid_/http://domain/page
は与えられたタイムスタンプで未修正のページhttp://domain/page
を返します。 id _トークンに注目してください。これらは、特定のドメインからすべてをダウンロードするためのスクリプトを作成するための基本です。
この目的のために特別に設計されたツール、Warrickがあります。 https://code.google.com/p/warrick/
それはMementoプロトコルに基づいています。
これはwget
で簡単に行えます。
wget -rc --accept-regex '.*ROOT.*' START
ここで、ROOT
はWebサイトのルートURL、START
は開始URLです。例えば:
wget -rc --accept-regex '.*http://www.math.niu.edu/~rusin/known-math/.*' http://web.archive.org/web/20150415082949fw_/http://www.math.niu.edu/~rusin/known-math/
START
URLのWebアーカイブのラッピングフレームをバイパスする必要があることに注意してください。ほとんどのブラウザでは、ページを右クリックして「このフレームのみ表示」を選択できます。