トップ > ウェブアーカイブのしくみ(おすすめコンテンツ) > 収集ロボット Heritrix

11. 収集ロボット Heritrix

「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のウェブベースインタフェース
「Heritrix 3.0 and 3.1 User Guide」

また、Heritrixは収集したウェブコンテンツをウェブアーカイブの保存用ファイルフォーマットであるARC形式やWARC形式で保存します。 これらのフォーマットで保存されたコンテンツは、オープンソースソフトウェアwaybackを使って閲覧することができます。

2004年8月にバージョン1.0.0がリリースされ、2013年3月時点でバージョン3.1.1がリリースされています。

処理フロー

Heritrixの動作の流れは「3.ウェブを収集するしくみ」に概要が書かれています。ここでは、もう少し詳しく見ていくことにします。

Heritrixの処理フロー

Heritrixは大きく分けて3つの機能からなります。 上図にあるように、上部の収集範囲(Scope)、左側のフロンティア(Frontier)と右側のToeThreadです。

収集範囲(Scope)

収集範囲では収集する範囲を管理しています。

  • ドメイン単位
  • http://warp.da.ndl.go.jp/contents/ 配下のURLのみ

といったような柔軟な指定が可能です。

フロンティア(Frontier)

フロンティアではURIの管理をしています。「URIキュー」にはまだ保存していないURIがためられています。最初は、収集する起点となるURLが登録されています。また、すでに保存したURIは「保存済みURI」にためられていきます。まず、URIキューの中から次に保存すべきURIを1つ選び出します。これはあらかじめ設定していた内容に従い自動的に抽出されます。選び出したURIはToeThreadへと渡され、そのURIの収集が始まります。

ToeThread

ToeThreadではURIが示すウェブコンテンツの保存を行います。Heritrixはマルチスレッド処理に対応していますので複数のURIを同時に保存することができます。その際、それぞれのURIに対してToeThreadの処理が同時に行われることになります。広範囲にわたるドメインのアーカイブを行う場合は、何百ものURIを同時に保存することになります。ToeThread では3つの処理が順に行われます。それらの概要は次の通りです。

  1. Candidate処理
    URIにアクセスする前の処理を行います。例えば、そのURIが収集する範囲内かどうかを確認します。
  2. Fetch処理
    URIにアクセスしてコンテンツを取得します。また、取得したコンテンツを解析し、そこに含まれているリンク(URI)を抽出します。
  3. Disposition処理
    取得したコンテンツをファイルに保存します。保存の際は通常WARC形式が使われます。また、抽出されたリンクのうちまだ保存していないものをURIキューに追加します。

※上記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)

ページの先頭へ