「Nutch」ですいすい情報収集 (クローリング機能を試す)
「Nutch」でウェブサイトをクローリングする方法を説明します。
クローリングとは、簡単にいえば「ウェブサイトの情報を集めるてくれる仕組み」でしょうか。
(注)
nutchを利用するには、unixがお勧めです。
私は、「CentOS 4」をOSとし用いました。
最初はwindowsでがんばろうと試行錯誤しましたが
多くの無駄な時間をつかってしまうという結果に終わりました(TT)。
「Nutch」利用したクローリングの方法には、
(A)ある特定のネットワーク(intranet)をクローリングする方法
(B)ウェブ全体(whole-web)をクローリングする方法
の2つがあります。
今回は、このblogサイト「http://kazuhiro.ty.land.to/blog/」を起点にして
(A)の方法でクローリングする方法を紹介します。
(1)「Nutch」をインストールする
「Nutch」の最新版をダウンロードサイトからダウンロードしてきます。
今回は、「nutch-0.8.1.tar.gz」をダウンロードしました。
ダウンロードしたファイルを適当なディレクトリに展開すればインストールは完了です。
以下では、「Nutch」のインストールディレクトリを"$NUTCH_HOME"で表すことにします。
以下のコマンドで、nutchのヘルプが表示されることを確認してください。
$NUTCH_HOME/bin/nutch
(2)クローリングの起点を設定する
作業ディレクトリで、次のコマンドを実行します。
mkdir urls
echo "http://kazuhiro.ty.land.to/blog/" > urls/blog
(3)クローリングを行うURLを制限する
ある特定のドメインだけをクローリングしたい場合などに設定します。
「$NUTCH_HOME/conf/crawl-urlfilter.txt」を編集します。
(before)
# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*MY.DOMAIN.NAME/
(after)
# accept hosts in MY.DOMAIN.NAME
+^http://kazuhiro.ty.land.to/blog/
(4)クローラのプロパティを設定します
「$NUTCH_HOME/conf/nutch-site.xml」を編集します。
まず、次のコマンドを実行してください。
cat nutch-default.xml > nutch-site.xml
「http.agent.name」プロパティを設定します。
具体的には、以下のようにします。
(before)
<name>http.agent.name</name>
<value></value>
(after)
<name>http.agent.name</name>
<value>test</value>
(注)
「please set this to a single word uniquely related to your organization.」
とあるので、実際は「kazuhiro.ty.land.to.blog」とかがふさわしいと思います。
(5)クローリングする
以下のコマンドを実行します。
$NUTCH_HOME/bin/nutch crawl urls -dir crawl -depth 3 -topN 50
-dir: クローリングの結果を格納するディレクトリを指定する
-depth: クローリングするリンクの深さを指定する
-topN: 各リンクの深さごとに取得するウェブページの最大数を指定する
コマンドとオプションの詳細は、こちらが参考になります。
(6)検索する
以下のコマンドを実行してください。
$NUTCH_HOME/bin/org.apache.nutch.searcher.NutchBean apache
「apache」というキーワードを含む上位10の文章(一部)が表示されます。
(注)
日本語の検索は、うまくいきません。
日本語の検索方法ついて詳しく知りたい方は、
以下の(日本語で検索する方法の参考)などを参照してください。
(日本語で検索する方法の参考)
「全文検索エンジン「Lucene」を試す」
「Lucene TECHSCORE」
今回は、ここまででです。
おつかれさまでした。
次回(あるかどうかわかりませんが(笑))は、クローリングされたデータを
Javaのプログラムから利用する方法を紹介したいと思います。
(参考)
「Nutch version 0.8.x tutorial」