ドキュメントを書く

処理ルールの指定方法とTransformerについての文を追加してみた。XpathTransformerを使えば、Solrに突っ込む XML ファイルに近いかと。地道に強化していこ。今のところ、s2robot-example しか、サンプルがないから、これはこれで増やしたいところ…。

http://s2robot.sandbox.seasar.org/ja/

s2robot-dbを切り出す

DB に依存する部分を s2robot-db として、切り出してみた。なので、s2robot だけで使えば、メモリ上だけに保存する感じで、手軽に利用できる。まぁ、クロールできる量がメモリ量に依存するので、試しに使ってみるとか、クロールする量が多くないとか、永続的に保存する必要がないとか、というようなときに使うことになるかと(メモリ上での保持の仕方はまだまだ改善の余地ありかも)。さて、ぼちぼちドキュメントを書いていかないと。

s2robot-exampleを追加

wget的なサンプルの方がいいような気もしたけど、簡単に使えることを目指しているので、シンプルなexampleプロジェクトを追加。URLと深さを引数に渡すとカレントディレクトリに保存する感じ。ご利用のプロジェクトで利用するための設定は、

  • S2Robot の DB をコピー
  • s2robot.dicon を include する
  • s2robot_jdbc.dicon を作成して、S2Robot の DB のパスを設定
  • Maven2 プロジェクトなら、s2-robot を pom に記述

という感じで、あとは

S2Robot s2Robot = (S2Robot) container.getComponent(S2Robot.class);
// add url
s2Robot.addUrl(url);
// depth
s2Robot.getRobotConfig().setMaxDepth(depth);
// run s2robot
String sessionId = s2Robot.execute();
// clean up
s2Robot.cleanup(sessionId);

というように使えます。S2Robotのインスタンスを得て、クロールするURLを追加して(デフォルトではひたすらクロールするので深さを指定)、そんで executeすれば実行されます。戻り値のsessionIdをキーとして情報が保存されているので、続きから再実行も可能です。exampleでは、別に再実行する必要がないので、cleanup して DB からデータを消してます。

という感じで、ドキュメントを書いていかないとな・・・。

ひとまずコミット

現状をひとまずコミットしておく。ドキュメントも書かなきゃなっと言うのもあるけど、デフォルトの動作として、簡単に使えるというところに力を入れたいところ。簡単に使えるというのは、pom.xml に s2robot を書いて、s2robot_jdbc.dicon と DB(H2) を置けば、使えるようなイメージ。まぁ、デフォルトの動きとしては、指定された場所にファイルで書き込みが良いのかな(FileTransformerみたいのを作ろう)。そんな感じで進めてます。