« 「Timeline」 - スケジュール管理、年表作成だっておてのもの | メイン | 「ECS」+「Timeline」で発売日リストをつくってみました »

「Nutch」ですいすい情報収集 (クローリング機能を試す)

  はてなブックマークに追加 このエントリを livedoor クリップへ追加

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

  「NutchWiki





Ads BOARD








最近のエントリーとその関連エントリー

トラックバック

このエントリーのトラックバックURL:
http://kazuhiro.ty.land.to/blog/mt-tb.cgi/123

  Map