About

ドキュメント

各種設定

Built by Maven

URL フィルタの設定方法

S2Robot では、URL フィルタ (UrlFilterインターフェース) により、クロール対象の URL かどうかを判定します。

設定方法

カスタマイズする場合は、s2robot_filter.dicon を作成してそこの中で定義します。 デフォルトでは、以下のような s2robot_filter.dicon が適用されます。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
    "http://www.seasar.org/dtd/components24.dtd">
<components>
    <component name="urlFilter" class="org.seasar.robot.filter.impl.UrlFilterImpl" instance="prototype">
    </component>
</components>

標準では、UrlFilterImpl で何も制限はされていません。 対象 URL を制限するには、UrlFilter の addInclude メソッドまたは addExclude メソッドにより指定します。 addInclude(String) に正規表現でパターン文字列指定することで、クロール対象の URL になります。 addExclude(String) で指定することで、クロール対象の URL から除外されます。

実際に S2Robot のインスタンスを利用して対象 URL を制限するには、addInclude と addExclude をラップした S2Robot の addIncludeFilter と addExcludeFilter メソッドを利用することができます。

    S2Robot s2Robot = (S2Robot) container.getComponent(S2Robot.class);

    s2Robot.addUrl(url);
    s2Robot.addIncludeFilter(url + ".*");

対象 URL 追加時にフィルタを設定する

たとえば、対象 URL 以下だけをクロール対象としたい場合、includeFilteringPattern や excludeFilteringPattern を指定することで様々な制御ができます。 標準では、対象 URL が追加された時に urlPattern ("^(.*:/+)([^/]*)(.*)$") にマッチさせて、includeFilteringPattern と excludeFilteringPattern で得られたパターン文字列を addInclude または addExclude メソッドに渡します。

対象 URL 以下だけをクロール対象としたい場合は、s2robot_filter.dicon を作成して以下のように記述します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
    "http://www.seasar.org/dtd/components24.dtd">
<components>
    <component name="urlFilter" class="org.seasar.robot.filter.impl.UrlFilterImpl" instance="prototype">
        <property name="includeFilteringPattern">"$1$2$3.*"</property>
    </component>
</components>