DB に依存する部分を s2robot-db として、切り出してみた。なので、s2robot だけで使えば、メモリ上だけに保存する感じで、手軽に利用できる。まぁ、クロールできる量がメモリ量に依存するので、試しに使ってみるとか、クロールする量が多くないとか、永続的に保存する必要がないとか、というようなときに使うことになるかと(メモリ上での保持の仕方はまだまだ改善の余地ありかも)。さて、ぼちぼちドキュメントを書いていかないと。
投稿者: shinsuke
Newton みるみる理解できる相対性理論
Newton google:みるみる理解できる相対性理論を読んだ。高校生くらいの頃だったか、興味があって、いろいろと読んだことがあったけど、最近、頭がなまってきている気もするし、良い頭の体操という感じだったかな。その本自体には特に目新しい話はなかった気がする。というわけで、次は、Newton 量子論を読んでみよっと。
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 からデータを消してます。
という感じで、ドキュメントを書いていかないとな・・・。