Heritrix
Channel: 宇宙のすべての知識 プリンシピア
Date: 08/10/2021

Heritrix, by Wikipedia https://ja.wikipedia.org/wiki?curid=3246614 / CC BY SA 3.0

#ネットワークソフト
Heritrix はインターネット・アーカイブが開発したウェブアーカイブのためのWebクローラーの一種。
Java言語で実装され、フリーソフトウェアライセンスにより自由に利用できる。
主にウェブブラウザを使って操作するが、コマンドラインツールを使ってクロールを開始するなどの操作も可能である。
名前は「(女性の)相続人」を意味するheiressの古語に由来する。
 Heritrixの開発は、2003年にまとめられた仕様に基づいて、インターネット・アーカイブとNordic National Librariesの共同で行われた。
最初のリリースは2004年1月で、その後インターネット・アーカイブの従業員や外部のウェブアーカイブに関心を持つ人々によって継続的に改良が続けられている。
 もっともHeritrixがインターネット・アーカイブ自身のウェブ収集に使われるようになったのはかなり後のことである。
かつてはアーカイブの大半はアレクサ・インターネット社から提供されていた。
アレクサ社は自身の業務に供するため独自のia_archiverと呼ばれるクローラーを使ってウェブ収集を行っており、収集したデータをインターネット・アーカイブに寄贈している。
当初インターネット・アーカイブ自身もHeritrixを使って収集を行ってはいたが、小規模なものに留まっていた。
 2008年からインターネット・アーカイブは自身の全ウェブ規模のクローリングの性能を向上させ、現在では自身で収集したものが大半を占めるようになっている。
 様々な組織、各国国立図書館などがHeritrixを利用している。
例えば: 初期のHeritrixは(特に変更しなければ)収集したウェブ資料をArcファイルに保存していた。
ここでいうArcファイルは汎用のアーカイブファイルフォーマットであるARCファイルとは無関係で、ウェブアーカイブのためにインターネット・アーカイブが1996年に設計したファイル形式のことである。
その後、仕様がより精密で拡張性に優れるWARCファイルに保存するように変更され、現在に至る。
Heritrixの設定を変更すればWgetのようにURLをディレクトリとファイル名に対応付けて保存することもできる。
多数の小さいファイルを扱う煩雑さを避けるため、Arcファイルは複数のウェブ資料を単一のファイルにまとめて保存する。
HTTPヘッダとレスポンス本体の前に資料の取得方法に関するメタデータをつけたものを一つのURLレコードとし、これを複数結合した形式である。
Arcファイルの先頭には通称filedescと呼ばれる、Arcファイル全体に関するメタデータを記録した特別なレコードを配置する。
これには以降に続くURLレコードのメタデータヘッダ行の形式の記述が含まれる。
Arcファイルの大きさは通例100から600 MB程度である。
 例: filedesc://IA-2006062.arc 0.0.0.0 20060622190110 text/plain 76
1 1 InternetArchive
URL IP-address Archive-date Content-type Archive-length

http://foo.edu:80/hello.html 127.10.100.2 19961104142103 text/html 187
HTTP/1.1 200 OK
Date: Thu, 22 Jun 2006 19:01:15 GMT
Server: Apache
Last-Modified: Sat, 10 Jun 2006 22:33:11 GMT
Content-Length: 30
Content-Type: text/html

「html」
Hello World!!!
「/html」
 Heritrixにはarcreader と呼ばれるArcファイルを処理するコマンドラインツールが付属している。
例えば、Arcファイルに保存されているすべてのURLとメタデータの一覧をCDX形式で得るには、次のように実行すればよい: arcreader IA-2006062.arc
 また、上記の例のhello.htmlを取り出すには次のように実行する(レコードが頭から140バイトの位置にあると仮定): arcreader -o 140 -f dump IA-2006062.arc
 Heritrixに付属するもの以外にも、ツールが開発されている: Heritrixには各...