ホーム DoRuby heritrixでクロールをする
heritrixでクロールをする
 

heritrixでクロールをする

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

クローラーとはWEB上に掲載されているテキストや画像や音声データを収集するロボットのことをいいます。

クローラーとは

クローラーとはWEB上に掲載されているテキストや画像や音声データを収集するロボットのことをいいます。html上のaタグをもとにクロールするURLを取得し情報を取得するのでクロールさせる場合はページ上のどこを取得するか指定する必要があります。

heritrixとは

クローラーするソフトはたくさんありますが、今回はheritrixを使います。heritrixはspringをもとに作られているオープンソースのクローラーです。ブラウザ上で設定や実行などができるので割と便利です。現在バージョン3系まで出ており、動かすためにはjava6以上が必要です。

導入

ホームーページの導入ガイドは3.1ですが、バージョン3.2が出ているので今回はそちらを使います。
環境:
Vagrant + VirtualBox
OS:CentOS Linux release 7.4.1708 (Core)
java:1.7.0_80

ソースの取得

まずはこちらから環境にあったものを持ってきます。

wget http://builds.archive.org/maven2/org/archive/heritrix/heritrix/3.2.0/heritrix-3.2.0-dist.tar.gz
tar zxvf heritrix-3.2.0-dist.tar.gz

パスやメモリの設定

適宜設定を行います。

export JAVA_HOME=/usr/java/jdk1.7.0_80
export HERITRIX_HOME=/home/vagrant/heritrix-3.2.0
chmod u+x $HERITRIX_HOME/bin/heritrix
export JAVA_OPTS=-Xmx1024M

起動

仮想環境の場合は、-bオプションでipを指定します。
自分はvagrantなのでゲストのipを設定

$HERITRIX_HOME/bin/heritrix -a admin:admin -b 192.168.XX.XX

※javaのバージョンが新しすぎると以下のようなエラーが出るようです。自分はjavaのバージョンを下げることで対応しました。

Exception in thread "main" java.lang.NoClassDefFoundError: sun/security/tools/KeyTool
  at org.archive.crawler.Heritrix.useAdhocKeystore(Heritrix.java:438)
  at org.archive.crawler.Heritrix.instanceMain(Heritrix.java:319)
  at org.archive.crawler.Heritrix.main(Heritrix.java:189)
Caused by: java.lang.ClassNotFoundException: sun.security.tools.KeyTool
  at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
  at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
  at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
  ... 3 more

クロールの実行

ブラウザにアクセス

https://192.168.XX.XX:8443/enginebasic認証を聞かれます。ユーザー:adminパスワード:admin

↓の画面が開きます
enter image description here

jobの作成

クロールをするためのジョブを作成します。
↓の赤枠の部分に名前を入れてcreateボタンを押します。
enter image description here

job画面へ遷移

↓の赤枠の部分が作成されるのでクリック
enter image description here

↓の画面が開きます
enter image description here

編集

最低限クロールを実行するために、xmlファイルを設定しなくちゃいけない箇所があります。
画面上部のConfigurationをクリック
↓の画面が開きます
enter image description here

metadata.operatorContactUrlの編集

クロールしたページでなにかトラブルが起きた用に、ページの管理者がクローラーの管理者にコンタクトをするためのページを指定します。
↓の赤枠の部分
enter image description here

beanタグ(id=”longerOverrides”)の編集

クロールのシード(開始地点)になるURLです。
↓の赤枠の部分を編集
enter image description here

実行

ジョブのトップ画面で
build→checkpoint→launchの順番で実行すれば実行は可能

結果

実行結果は↓に出力されます。
enter image description here

おわりに

データを取得するためにはまだまだ設定をする必要がありそうです。今後調べていきます。

参考

・ホームページ
https://webarchive.jira.com/wiki/spaces/Heritrix/overview

・Webクローラ「Heritrix」を使ってみる
https://qiita.com/megu_ma/items/26ae5937ca4362ad767b

・国立国会図書館 インターネット資料収集保存事業
http://warp.da.ndl.go.jp/contents/reccommend/mechanism/mechanism_heritrix.html

記事を共有

最近人気な記事