「Heritrix」は数あるクローラの中の1つです。クローラは、「ロボット」や「ボット」と呼ばれることもあります。
https://webarchive.jira.com/wiki/display/Heritrix/Heritrix
クローラとはインターネット上のウェブページを巡回し、画像やPDFファイルなどを自動的に集めてくるプログラムのことをいいます。GoogleやBingなどの検索エンジンは独自に開発したクローラを使って、インターネット上の情報を収集し、それらを検索できるようにしています。
Heritrix は、インターネットアーカイブや国立国会図書館のWARPをはじめとして、大英図書館(British Library)、米国議会図書館(Library of Congress)など、世界中の国立図書館のウェブアーカイブ事業で使用されています。
HeritrixはJava言語で開発されているオープンソースソフトウェアです。インターネットアーカイブによって開発されました。Apache License, Version 2.0 を採用していますので、ユーザはそのライセンスのもとで自由に修正、再頒布等を行うことができます。
Heritrixにはウェブベースのインタフェースがありますの で、ブラウザを使っての設定や収集状況の確認ができます。
また、Heritrixは収集したウェブコンテンツをウェブアーカイブの保存用ファイルフォーマットであるARC形式やWARC形式で保存します。 これらのフォーマットで保存されたコンテンツは、オープンソースソフトウェアwaybackを使って閲覧することができます。
2004年8月にバージョン1.0.0がリリースされ、2013年3月時点でバージョン3.1.1がリリースされています。
Heritrixの動作の流れは「3.ウェブを収集するしくみ」に概要が書かれています。ここでは、もう少し詳しく見ていくことにします。
Heritrixは大きく分けて3つの機能からなります。 上図にあるように、上部の収集範囲(Scope)、左側のフロンティア(Frontier)と右側のToeThreadです。
収集範囲では収集する範囲を管理しています。
といったような柔軟な指定が可能です。
フロンティアではURIの管理をしています。「URIキュー」にはまだ保存していないURIがためられています。最初は、収集する起点となるURLが登録されています。また、すでに保存したURIは「保存済みURI」にためられていきます。まず、URIキューの中から次に保存すべきURIを1つ選び出します。これはあらかじめ設定していた内容に従い自動的に抽出されます。選び出したURIはToeThreadへと渡され、そのURIの収集が始まります。
ToeThreadではURIが示すウェブコンテンツの保存を行います。Heritrixはマルチスレッド処理に対応していますので複数のURIを同時に保存することができます。その際、それぞれのURIに対してToeThreadの処理が同時に行われることになります。広範囲にわたるドメインのアーカイブを行う場合は、何百ものURIを同時に保存することになります。ToeThread では3つの処理が順に行われます。それらの概要は次の通りです。
※上記ToeThreadの概要はHeritrixバージョン3系列について説明しています。バージョン1系列では、処理が5段階に分かれています。
こうしてURIキューに入っているURIがすべてなくなるまで処理が続けられます。URIキューが空になれば収集は完了です。
Heritrixはモジュールを追加することで機能を追加することができます。現在、以下のようなモジュールが公開されています。
国立国会図書館は DeDuplicator モジュールを追加して差分収集を行っています。
Gordon Mohr, Michael Stack, Igor Ranitovic, Dan Avery and Michele Kimpton. "An Introduction to Heritrix" 4th International Web Archiving Workshop (2004) (accessed 2013-03-04).
(最終更新日:2015/2/23)