nutch 1.0のクローラーを実行してみよう

nutch 1.0のクローラーを実行する準備として、以下の環境が必要。

Java 1.6(nutch 0.9まではJava 1.5で良かったんだけどね。)
Tomcat 5.5以上
Cygwin

クロールするURLを記述したテキストファイル(testurl.txtとでもしておく)を用意する。

www.テスト用のドメイン(自分の運営するサイトとか)

クロールするURLに対してフィルター内容を記述するcrawl-urlfilter.txtファイルを修正する。
MY.DOMAIN.NAMEのところを、testurl.txtファイルに書き込んだURLのwwwより後ろの部分を書き込む。

 +^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/

クローラーのエージェント名(ロボット名)を定義するnutch-site.xmlを修正する。



Cygwinを起動する。
Cygwinは、Unix-Windowsコマンドインタープリターで、Cygwinのコンソール内で、Unixのコマンド、例えばlsが入力されたときには、dirに変換してWindowsに実行してくれる。

Nutchのcrawlコマンドは、Unix上で実行することを基本に作られているので、実行中に、whoamiというUnixのコマンドを実行する。
Windows上で、Nutchを実行するためには、めんどうくさいけど、Cygwinコンソールから実行する必要がある。

Java環境変数を設定する。

export JAVA_HOME='/cygdrive/c/Program Files/Java/jdk1.6.0_14'

Nutchを実行する。

bin/nutch crawl urls_test -dir crawl_test -depth 3 -topN 10

”crawl finished”と表示されれば、クロールやインデクシングが正しく完了している。


途中で、エラーが発生してクロールが止まってしまった場合は、インデクスファイルを書き出すディレクトリ(-dirオプション以下)を変えて実行するとうまくいく。