Webアーカイブツールpywb
Werecorderのpywbツールキットは、Pythonで記述されたWebアーカイブの統合ツールで、Webページのキャプチャ、リプレイ等の機能を提供している。
レコーディングはJavaScriptによるDOMの操作やレンダリングに対応しておこなわれるため、動的に表示されるページの多くは元のページと同様に表示が可能である。
インストールはpipでおこなう。
pip install pywb
コマンドラインツールでWebアーカイブの初期化をおこなう。"archive-folder"がWebアーカイブを置くフォルダで事前に作成しておく。"my-web-archive"はWebアーカイブのコレクション名である。
mkdir archive-folder
cd archive-folder
wb-manager init my-web-archive
既存のWARC形式のファイルを持っているなら、アーカイブに追加することができる。アーカイブのインデックスが自動的に更新される。
wb-manager add my-web-archive <path/to/my_warc.warc.gz>
Webアーカイブへのコンテンツの追加
Webアーカイブを作成する方法はいくつかあるが、pywbレコーダーを使う方法を紹介する。
まず、waybackをレコーディングモードで起動する。
wayback --record --live -a --auto-interval 10
デフォルトではポート8080で起動されているので、たとえば、http://example.com/ を保存するなら、ブラウザで、http://localhost:8080/my-web-archive/record/http://example.com/ にアクセスするだけである。ページが表示された時点で、再生表示に必要なコンテンツはすべてアーカイブされている。ページ内のリンクをクリックすることによって、アーカイブにそのページを保存することができるので、必要なページを次々にクリックすればよい。
この時点でフォルダーの内容は以下の通りである。
./static
./templates
./collections
./collections/my-web-archive
./collections/my-web-archive/archive
./collections/my-web-archive/archive/rec-20221005045408876609-mumujin.local.warc.gz
./collections/my-web-archive/static
./collections/my-web-archive/templates
./collections/my-web-archive/indexes
./collections/my-web-archive/indexes/autoindex.cdxj
WARCファイル(rec-20221005045408876609-mumujin.local.warc.gz)と、インデックス(autoindex.cdxj)が作成されている。レコーディング用のWARCファイルは1GB前後になると、新しいファイルが作成される。
Webアーカイブ上のページの再生表示(リプレイ)
上の例の場合、http://localhost:8080/my-web-archive/http://example.com/ にアクセスすることで、そのページが再生表示(リプレイ)される。
レコーディングをせずに、リプレイだけが必要な場合は、引数なしでwaybackコマンドを起動すればよい。
wayback
クローリングによるサイトの保存
Webrecorderはpuppeteerを使ってクローリングをおこなうDockerコンテナBrowsertrix Crawlerも提供している。高機能で利便性も高いツールであるが、筆者の場合、クローリングでエラー発生時のリカバリー制御方法がみつからなかったため、手動でクローリングをおこなった。
Discussion