セットアップ
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 を利用することができます。
