セットアップ
S2Robot は、簡易的に利用するためにクロールしたデータをメモリ上に保存する方法と、s2robot-db を利用して DB に永続的に保存する方法があります。
クロール結果データの保存にメモリを利用する場合
この方法は手軽に S2Robot を利用したい場合におすすめです。 クロール結果のデータをメモリを利用しているので、簡単に S2Robot を利用することができます。
Maven 2 を利用している場合は、pom.xml に s2-robot を以下のように指定します。
<dependencies> : <dependency> <groupId>org.seasar.robot</groupId> <artifactId>s2-robot</artifactId> <version>0.4.2</version> </dependency> : </dependencies>
Maven 2 以外で利用する場合は、s2-robot および 依存関係 を参照して、必要な jar ファイルを追加してください。
あとは、app.dicon などの dicon ファイルで s2robot.dicon を include します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/dtd/components24.dtd"> <components> : <include path="s2robot.dicon"/> : </components>
この方法の場合、クロールできるファイル数は利用しているメモリ量に依存します。 また、実行しているプログラムの終了時にクロール結果のデータは失います(利用しているプログラム側で保存する必要があります)。
クロール結果データの保存に DB を利用する場合
この方法は、大量にクロールする必要が場合などに適しています。 クロール結果の保存は DB を用いて行います(デフォルトでは H2Database を利用します)。
Maven 2 を利用している場合は、pom.xml に s2-robot-db を以下のように指定します。
<dependencies> : <dependency> <groupId>org.seasar.robot</groupId> <artifactId>s2-robot-db-h2</artifactId> <version>0.4.2</version> </dependency> <dependency> <groupId>org.seasar.robot</groupId> <artifactId>s2-robot-db</artifactId> <version>0.4.2</version> </dependency> : </dependencies>
Maven 2 以外で利用する場合は、s2-robot、s2-robot-db、s2-robot-db-h2 および 依存関係 を参照して、必要な jar ファイルを追加してください。
利用する DB を用意します。デフォルトでは H2Database を利用するので、プロジェクトのトップディレクトリなどにコピーしてください。 最新のデータはここから取得できます。
また、H2Dataaseでなく、MySQLを利用する場合はDDLを利用してテーブルを作成して、s2-robot-db-h2の代わりにs2-robot-db-mysqlを利用してください。
次に app.dicon などの dicon ファイルで s2robot_db.dicon を include します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/dtd/components24.dtd"> <components> : <include path="s2robot_db.dicon"/> : </components>
s2robot_jdbc.dicon を作成します。 クロール結果を保存する DB 情報を記述します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN" "http://www.seasar.org/dtd/components21.dtd"> <components namespace="jdbc"> <include path="jta.dicon"/> <!-- for H2 --> <component name="xaDataSource" class="org.seasar.extension.dbcp.impl.XADataSourceImpl"> <property name="driverClassName"> "org.h2.Driver" </property> <property name="URL"> "jdbc:h2:file:" + new java.io.File('.').getCanonicalPath() + "/db/robot;DB_CLOSE_ON_EXIT=FALSE" </property> <property name="user">"sa"</property> <property name="password"></property> </component> <component name="connectionPool" class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl"> <property name="timeout">600</property> <property name="maxPoolSize">10</property> <property name="allowLocalTx">true</property> <destroyMethod name="close"/> </component> <component name="DataSource" class="org.seasar.extension.dbcp.impl.DataSourceImpl" /> </components>
上記の場合はカレントディレクトリ下に db ディレクトリを作り、その中に robot という H2Database の DB を作成した場合になります。
以上で、ご利用のプロジェクトで S2Robot を利用することができます。