BaseConfiguratorクラスとそのメソッド、およびインタフェースでは、クローラのサイト・キャプチャ・プロセスを制御します。サンプル・コードは、FirstSiteIIクローラのSite Captureインストールに使用できます。
クローラ構成の詳細は、次の項を参照してください。
クローラを制御するには、少なくとも開始URIとリンク抽出ロジックを使用してCrawlerConfigurator.groovyファイルをコーディングする必要があります。どちらの情報もgetStartUri()およびcreateLinkExtractor()メソッドを通じて提供されます。必要に応じてコードを追加して、たとえば、クロールするリンク数、クロールの深さ、クロール後イベントの呼出し(ダウンロードされたファイルのWebサーバーのドキュメント・ベースへの静的コピーなど)を指定できます。
使用するメソッドとインタフェースは、BaseConfiguratorクラスに用意されています。デフォルトの実装は、ターゲット・サイトの構造と収集するデータに適した方法でクロール・プロセスをカスタマイズおよび制御するためにオーバーライドできます。
この章では、最初にBaseConfiguratorのメソッド(「BaseConfiguratorのメソッド」を参照)と単純なCrawlerConfigurator.groovyファイル(「createLinkExtractor」を参照)を取り上げ、必要なメソッドの使用方法を示します。さらに、クローラのカスタマイズ方法について説明した後、Site CaptureのJavaインタフェース(デフォルト実装とカスタム実装を含む)について説明します。
CrawlerConfigurator.groovyファイルには、CrawlerConfiguratorクラスのコードが含まれています。このクラスでは、クローラのデフォルト実装を提供する抽象クラスのBaseConfiguratorを拡張する必要があります。
表54-1に、BaseConfiguratorクラスのメソッドおよびインタフェースを示します。
表54-1 BaseConfiguratorクラスのメソッド
| メソッド・タイプ | メソッド | メモ |
|---|---|---|
必須 |
なし |
|
必須 |
LinkExtractorインタフェースのファクトリ・メソッド。1、2 |
|
クローラのカスタマイズ |
なし |
|
クローラのカスタマイズ |
なし |
|
クローラのカスタマイズ |
なし |
|
クローラのカスタマイズ |
なし |
|
クローラのカスタマイズ |
なし |
|
クローラのカスタマイズ |
なし |
|
クローラのカスタマイズ |
なし |
|
クローラのカスタマイズ |
ResourceRewriterインタフェースのファクトリ・メソッド。 |
この項には次のトピックが含まれます:
基本的なサンプルのCrawlerConfigurator.groovyファイルについては、「createLinkExtractor」を参照してください。
BaseConfiguratorの2つの抽象メソッドは、CrawlerConfiguratorでオーバーライドする必要があります。該当するメソッドは、getStartUri()とcreateLinkExtractor()です。
このメソッドは、クローラの開始URIを挿入します。URIが同一サイトに属している場合は、1つ以上のURIをクロールに構成します。複数の開始点を指定すると、複数のクロールが並行に開始されます。
www.example.comサイトの開始URIを指定するには:
/**
* The method is used to configure the site url which needs to be crawled.
*/
public String[] getStartUri()
{
return ["http://www.example.com/home"]; //Groovy uses brackets for an array.
}
サイトに複数の開始URIを指定するには、カンマ区切りの配列を入力します。
/**
* The method is used to configure the site url which needs to be crawled.
*/
public String[] getStartUri()
{
return ["http://www.example.com/product","http://www.example.com/support"]; //Groovy uses brackets for an array.
}
このメソッドは、クロールしたページからリンクを抽出するロジックを構成します。抽出したリンクは、巡回の対象になります。createLinkExtractorメソッドは、LinkExtractorインタフェースのファクトリ・メソッドです。
たとえば、LinkExtractorインタフェースを実装し、HTMLパーサーを使用してページを解析し、クロールに利用するリンクを抽出します。
リンクを抽出するには、正規表現を使用するデフォルト実装のPatternLinkExtractorを使用します。たとえば、PatternLinkExtractorを使用すると、「基本の構成ファイル」のサンプル・コードに示すように、/home/products形式のリンクを、<a href="/home/product">Products</a>のような式で抽出できます。
www.example.comサイトの<a href="/home/product">Products</a>からリンクを抽出する正規表現を使用するには:
/**
* The method is used to define the link extraction
* algorithm from the crawled pages.
* PatternLinkExtractor is a regex based extractor
* which parses the links on the web page
* based on the pattern configured inside the constructor.
*/
public LinkExtractor createLinkExtractor()
{
return new PatternLinkExtractor("['\"\\(](/[^\\s<'\"\\)]*)",1);
}
正規表現とPatternLinkExtractorの詳細は、「LinkExtractorのデフォルト実装の使用」を参照してください。
LinkExtractorインタフェースの実装方法の詳細は、「カスタム・リンク・エクストラクタの作成とデプロイ」を参照してください。
基本の構成ファイル
次に示す、簡単なCrawlerConfigurator.groovyファイルの例では、必須のメソッドgetStartUri()とcreateLinkExtractor()がオーバーライドされています。
この例では、追加のメソッドgetMaxLinks()をオーバーライドしていますが、これは「getMaxLinks」で説明されています。サンプルでは、テストが短時間で完了するように、150を返しています。
CrawlerConfigurator.groovyというファイルは、依存性を挿入するために使用しています。そのため、この名前は変更しないでください。
package com.fatwire.crawler.sample
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.regex.Pattern;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import com.fatwire.crawler.*;
import com.fatwire.crawler.remote.*;
import com.fatwire.crawler.remote.di.*;
import com.fatwire.crawler.impl.*;
import com.fatwire.crawler.util.FileBuilder;
import org.apache.commons.lang.SystemUtils;
import org.apache.http.HttpHost;
import org.apache.http.auth.*;
import org.apache.http.client.*;
import org.apache.http.impl.client.*;
/**
* Configurator for the crawler.
* This is used to inject the dependency inside the crawler
* to control the crawling process
*/
public class CrawlerConfigurator extends BaseConfigurator {
public CrawlerConfigurator(GlobalConfigurator delegate){
super(delegate);
}
/**
* The method is used to configure the site url which needs to be crawled.
*/
public String[] getStartUri() {
return ["http://www.fatwire.com/home"]; //Groovy uses brackets for an array.
}
/**
* The method is used to define the link extraction algorithm
* from the crawled pages.
* PatternLinkExtractor is a regex based extractor which parses
* the links on the web page
* based on the pattern configured inside the constructor.
*/
public LinkExtractor createLinkExtractor() {
return new PatternLinkExtractor("['\"\\(](/[^\\s<'\"\\)]*)",1);
}
/**
* The method is used to control the maximum number of links
* to be crawled as part of this crawl session.
*/
public int getMaxLinks()
{
150;
}
BaseConfiguratorクラスには、必須のメソッド以外にも、デフォルト実装を備えたメソッドが含まれており、これらのメソッドをオーバーライドすると、ターゲット・サイトの構造と収集する必要のあるデータに適する方法でクロールのプロセスをカスタマイズできます。
この項には次のトピックが含まれます:
このメソッドは、クロールするリンクの数を制御します。リンクの数は正の整数にする必要があります。それ以外の場合は、同一ドメイン内で開始URIから到達可能な、すべてのリンクをクロールでスキャンするようになります。
クロールに500のリンクを指定するには:
/**
* default: -1; crawler will crawl over all the links reachable from the start URI
* @return the maximum number of links to download.
*/
public int getMaxLinks()
{
return 500;
}
このメソッドは、クロールするサイトの最大の深さを制御します。指定した深さを超えるリンクは無視されます。開始ページの深さは、0です。
/**
* default: -1. Indicates infinite depth for a site.
* @return the maximum depth to which we need to crawl the links.
*/
public int getMaxCrawlDepth()
{
return 4;
}
このメソッドでは、クロール対象のリンクに対して、クローラが行ったリクエストのソケット・タイムアウトを制御します。
ソケット・タイムアウトに30,000ミリ秒を設定するには:
/**
* default: 20000 ms
* @return Socket timeout in milliseconds.
*/
public int getSocketTimeout()
{
return 30000; // in milliseconds
}
このメソッドは、カスタムのクロール後ロジックを挿入します。このメソッドは、クローラがクロール・セッションを終了したときに呼び出されます。このメソッドでは、スクリプトの絶対パス、またはコマンドとパラメータ(パラメータがある場合)を返す必要があります。
たとえば、getPostExecutionCommand()を使用すると、取得したファイルをクロール・セッションの終了後に静的にコピーするようなバッチやシェル・スクリプトを起動して、Webサーバーのドキュメント・ベースへのデプロイメントを自動化できます。
注意:
スクリプトやコマンドは、Site Captureをホストするすべてのサーバー上の同じ場所に存在している必要があります。
サイト・キャプチャ・インタフェースからは(250MBを超える)大きなアーカイブ・ファイルをダウンロードしないでください。Site Captureファイル・システムから目的の場所にファイルをコピーする場合は、getPostExecutionCommandを使用してください。アーカイブのサイズは、「ジョブの詳細」フォームに示されるクローラ・レポートから取得できます。
Site Captureサーバー上のcopy.batというバッチ・スクリプトを実行する手順:
/**
* default: null.
* @return the command string for post execution.
* Null if there is no such command.
*/
public String getPostExecutionCommand()
{
// The file is supposed to be at the path C:\\commands folder
// on the computer where the site capture server is running
return "C:\\commands\\copy.bat";
}
このメソッドでは、クロール・プロセスに使用するワーカー・スレッドの数を制御します。クロール・セッション用に生成する並列スレッドの理想的な数は、Site Captureをホストするコンピュータのアーキテクチャに応じて異なります。
1つのクローラ・プロセスに対して10個のワーカー・プロセスを開始するには:
/**
* default: 4.
* @return the number of workers to start.
* Workers will concurrently downloads resources.
*/
public int getNumWorkers()
{
// Start 10 worker threads which is involved in the crawl process.
return 10;
}
このメソッドは、クローラがサイトを巡回するときに利用するユーザー・エージェントを構成します。このメソッドは、ブラウザでのレンダリングと異なる方法で、サイトをレンダリングするときに使用する必要があります(モバイル・デバイスでサイトをレンダリングする場合など)。
FireFox 3.6.17のユーザー・エージェントを構成するには:
/**
* default: publish-crawler/1.1 (http://www.fatwire.com)
* @return the user agent identifier
*/
public String getUserAgent()
{
return "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US;rv:1.9.2.17) Gecko/20110420 Firefox/3.6.17 ";
}
このメソッドは、クロールしたHTMLページ内のURLをリライトします。たとえば、WebCenter Sitesの動的なWebサイトを静的に配信できるようにするために、URLをリライトします。
createResourceRewriterメソッドは、ResourceRewriterインタフェースのファクトリ・メソッドです。
ResourceRewriterインタフェースは、たとえば、動的URLを静的URLに変換したり、絶対URLを相対URLに変換したりするように実装します。
また、次に示すデフォルト実装を使用することもできます。
NullResourceRewriter: どのURLもリライトしません。
PatternResourceRewriter: 正規パターンを検索して、指定に従ってリライトします。
PatternResourceRewriterを使用して、http://www.site.com/home.htmlのようなURLを/home.htmlにリライトするには:
/**
* Factory method for a ResourceRewriter.
* default: new NullResourceRewriter();
* @return the rewritten resource modifies the html before it is saved to disk.
*/
public ResourceRewriter createResourceRewriter()
{
new PatternResourceRewriter("http://www.site.com/([^\\s'\"]*)", '/$1');
}
デフォルト実装の詳細は、「ResourceRewriterのデフォルト実装の使用」を参照してください。
ResourceRewriterインタフェースの実装方法の詳細は、「カスタムResourceRewriterの作成」を参照してください。
このメソッドは、クロール後に電子メールを送信するための実装を提供します。createMailerメソッドは、Mailerインタフェースのファクトリ・メソッドです。
Site Captureには、静的またはアーカイブのキャプチャ・セッションが終了したときに、クローラ・レポートを電子メールで送信する、SMTP over TLSの実装が用意されています(クローラ・レポートは、report.txtファイルです。詳細は、『Oracle WebCenter Sitesの管理』を参照してください)。
SMTP-TLS以外のメール・サーバー(認証なしのSMTPやPOP3など)を使用している場合は、独自の実装を用意する必要があります。
電子メールを送信するには:
/**
* Factory method for a Mailer.
* <p/>
* default: new NullMailer().
* @return mailer holding configuration to send an email at the end of the crawl.
* Should not be null.
*/
public Mailer createMailer()
{
return new NullMailer();
}
デフォルト実装の詳細は、「Mailerのデフォルト実装の使用」を参照してください。
ResourceRewriterインタフェースの実装方法の詳細は、「カスタムMailerの作成」を参照してください。
このメソッドは、クロール先のサイトがプロキシ・サーバーの背後にある場合に、オーバーライドする必要があります。プロキシ・サーバーは、このメソッドで構成できます。
注意:
getProxyHostを使用するときには、getProxyCredentialsも使用します(「getProxyCredentials」を参照)。
プロキシ・サーバーを構成するには:
/**
* default: null.
* @return the host for the proxy,
* null when there is no proxy needed
*/
public HttpHost getProxyHost()
{
//using the HTTPClient library return a HTTPHost
return new HttpHost("www.myproxyserver.com", 883);
}
このメソッドは、getProxyHostメソッドで構成されるプロキシ・サーバーの資格証明を挿入します(「getProxyHost」を参照)。
sampleuserという名前のプロキシ・サーバーのユーザーを認証するには:
/**
* default: null.
* example: new UsernamePasswordCredentials(username, password);
* @return user credentials for the proxy.
*/
public Credentials getProxyCredentials()
{
return new UsernamePasswordCredentials("sampleuser", "samplepassword");
//using the HTTPClient library return credentials
}
Site Captureに用意されている、デフォルト実装のあるインタフェースは、次のとおりです。
リンク・エクストラクタは、クロール・セッションでSite Captureの巡回先にするリンクを指定します。この実装は、CrawlerConfigurator.groovyファイルを通じて挿入されます。この実装は、クロール・セッションの一環としてダウンロードされたマークアップからリンクを抽出するために、クロール・セッション中にSite Captureフレームワークによってコールされます。
Site Captureには、LinkExtractorの実装が1つ用意されています。カスタムのリンク抽出ロジックを作成して、デプロイすることもできます。詳細は、次の項を参照してください。
このインタフェースに含まれるメソッドは、1つのみです(extract)。このメソッドは、ダウンロードしたマークアップからリンクを抽出するアルゴリズムを提供するように実装する必要があります。
package com.fatwire.crawler;
import java.util.List;
import com.fatwire.crawler.url.ResourceURL;
/**
* Extracts the links out of a WebResource.
*/
public interface LinkExtractor
{
/**
* Parses the WebResource and finds a list of links (if possible).
* @param resource the WebResource to inspect.
* @return a list of links found inside the WebResource.
*/
List<ResourceURL> extract(final WebResource resource);
}
PatternLinkExtractorは、LinkExtractorインタフェースのデフォルト実装です。PatternLinkExtractorは、正規表現に基づいてリンクを抽出します。正規表現を入力として受け取り、その正規表現に一致するリンクのみを返します。
一般的な使用方法のシナリオは、動的URLのサイトにPatternLinkExtractorを使用する方法と、静的URLのサイトにPatternLinkExtractorを使用する方法です。
動的URLのサイトにPatternLinkExtractorを使用する方法:
たとえば、www.example.comのリンクには、/home、/support、および/cs/Satellite/というパターンがあるとします。この種のリンクを抽出して巡回するには、次に示すように、PatternLinkExtractorを使用します。
/**
* The method is used to define the link extraction algorithm
* from the crawled pages.
* PatternLinkExtractor is a regex based extractor which parses
* the links on the web page
* based on the pattern configured inside the constructor.
*/
public LinkExtractor createLinkExtractor()
{
return new PatternLinkExtractor("['\"\\(](/[^\\s<'\"\\)]*)",1);
}
パターン['\"\\(] (/[^\\s<'\"\\)]*)を使用して、リンクを抽出します。:
最初の文字は、次のいずれかになります。
一重引用符( ' )
二重引用符( " )
左カッコ (
その後に、スラッシュ( / )文字が続きます
最後の文字は、次のいずれかになります。
空白(\s)
小なり記号(<)
一重引用符( ' )
二重引用符( " )
右カッコ )
次に示すマークアップ内のURLを例に説明します。
<a href='/home'>Click Me</a>
抽出の対象は、/homeリンクのみです。このリンクは、一重引用符(')で始まり一重引用符(')で終わっているため、前述の正規表現パターンと一致します。グループ1は、結果として/homeを返します。
静的URLのサイトにPatternLinkExtractorを使用する方法。
たとえば、www.example.comのマークアップに、次のようなリンクがあるとします。
<a href="http://www.example.com/home/index.html">Click Me</a>
この種のリンクを抽出して巡回するために、次に示す方法でPatternLinkExtractorを使用します。:
/**
* The method is used to define the link extraction algorithm
* from the crawled pages.
* PatternLinkExtractor is a regex based extractor which parses
* the links on the web page
* based on the pattern configured inside the constructor.
*/
public LinkExtractor createLinkExtractor()
{
return new PatternLinkExtractor(Pattern.compile("http://www.example.com/[^\\s<'\"]*"));
}
前述の例では、http://www.example.comで始まり、空白(\s)、小なり記号(<)、一重引用符(')または二重引用符(")で終わるリンクを抽出するように、クローラに指示しています。
注意:
グループとパターンの詳細は、Javaドキュメントで、PatternクラスとMatcherクラスの説明を参照してください。
Site Captureには、サンプルのリンク・エクストラクタ(およびリソース・リライタ)があり、FirstSiteIIサンプル・クローラは、これらを使用して、WebCenter Sitesの動的なFirstSiteII Webサイトを静的サイトとしてダウンロードします。詳細は、次のフォルダにあるFSIILinkExtractorクラスのソース・コードを参照してください。
<SC_INSTALL_DIR>/fw-site-capture/crawler/_sample/FirstSiteII/src
カスタム・リンク・エクストラクタを作成するには::
リソース・リライタは、クロール・セッション中にダウンロードしたマークアップ内のURLをリライトします。この実装は、CrawlerConfigurator.groovyファイルを通じて挿入する必要があります。
次に示すようなユースケースで、リソース・リライタが必要になります。
動的サイトをクローリングして、静的コピーを作成する。
絶対URLを相対URLに変換する。たとえば、http://www.example.com/abc.htmlのようなURLがマークアップに含まれている場合、クローラは、このURLからhttp://www.example.comを削除する必要があり、これにより、ダウンロードしたファイルが保存されているホストから、リソースを提供できるようになります。
Site Captureには、ResourceRewriterの実装が2つ用意されています。また、カスタムの実装を作成することもできます。詳細は、次の項を参照してください。
rewriteメソッドは、クロール・セッション中にダウンロードしたマークアップ内のURLをリライトします。
package com.fatwire.crawler;
import java.io.IOException;
/**
* Service for rewriting a resource. The crawler will use the implementation for
* rewrite method to rewrite the resources that are downloaded as part of crawl
* session.
*/
public interface ResourceRewriter
{
/**
* @param resource
* @return the bytes after the rewrite.
* @throws IOException
*/
byte[] rewrite(WebResource resource) throws IOException;
}
Site Captureに用意されているResourceRewriterの実装は、次のとおりです。
NullResourceRewriter: デフォルトで、リンクのリライトを省略するように構成されています。CrawlerConfigurator.groovyファイルでResourceRewriterが構成されていない場合は、デフォルトで、NullResourceRewriterが挿入されます。
PatternResourceRewriter: 正規表現に基づいてURLをリライトするために使用します。PatternResourceRewriterは、マークアップ内のリンクと一致する正規表現を入力として受け取り、一致したリンクをコンストラクタで指定した文字列に置き換えます。
絶対URLを相対URLにリライトするには:
リライト前:
<a href="http://www.example.com/about/index.html">Click Me</a>
リライト後:
<a href="/about/index.html">Click Me</a>
/**
* Factory method for a ResourceRewriter.
* default: new NullResourceRewriter();
* @return the rewritten resource modifies the html before it is saved to disk.
*/
public ResourceRewriter createResourceRewriter()
{
new PatternResourceRewriter("http://www.example.com/([^\\s'\"]*)", '/$1');
}
PatternResourceRewriterのコンストラクタは、1つのみです。このコンストラクタは、次に示すように、正規表現と置換文字列を1つずつ受け取ります。
PatternResourceRewriter(final String regex, final String replacement)
Site Captureには、サンプルのリソース・リライタ(およびリンク・エクストラクタ)があり、FirstSiteIIサンプル・クローラは、これらを使用して、WebCenter Sitesの動的なFirstSiteII Webサイトを静的サイトとしてダウンロードします。詳細は、次のフォルダにあるFSIILinkExtractorクラスのソース・コードを参照してください。
<SC_INSTALL_DIR>/fw-site-capture/crawler/_sample/FirstSiteII/src
カスタム・リソース・リライタを作成するには::
メーラーは、クロールの終了後に電子メールを送信します。この実装は、CrawlerConfigurator.groovyファイルを通じて挿入する必要があります。
Site Captureには、SMTPTlsMailerの実装が用意されています。これを使用して、SMTP-TLSメール・サーバーからクローラ・レポートを送信できます。また、Mailerインタフェースを実装して、SMTP-TLS以外のサーバー(認証なしのSMTP、POP3など)から電子メールを送信するためのカスタム・ロジックを提供できます。カスタム・ロジックでは、電子メールを、クローラ・レポート以外のオブジェクトとして指定することもできます。CrawlerConfigurator.groovyファイルでMailerが構成されていない場合は、デフォルトでNullMailerが挿入されます。
この項には次のトピックが含まれます:
sendMailは、MailerがCrawlerConfigurator.groovyファイルで構成されていると、自動的にコールされます。
package com.fatwire.crawler;
import java.io.IOException;
import javax.mail.MessagingException;
/**
* Service to send an email.
*/
public interface Mailer
{
/**
* Sends the mail.
*
* @param subject
* @param report
* @throws MessagingException
* @throws IOException
*/
void sendMail(String subject, String report)
throws MessagingException, IOException;
}
Site Captureには、静的またはアーカイブのクロール・セッションが終了したときにクローラ・レポートを送信するSMTP-TLSサーバー・ベースの電子メールの実装が用意されています。(クローラ・レポートは、report.txtファイルです。詳細は、『Oracle WebCenter Sitesの管理』を参照)。
デフォルトのメーラーは、次に示すように、CrawlerConfigurator.groovyファイルに挿入することで使用します。
/**
* Factory method for a Mailer.
* <p/>
* default: new NullMailer().
* @return mailer holding configuration to send an email
* at the end of the crawl.
* Should not be null.
*/
public Mailer createMailer()
{
try
{
// Creating a SmtpTlsMailer Object
SmtpTlsMailer mailer = new SmtpTlsMailer();
InternetAddress from;
// Creating an internet address from whom the mail
// should be sent from = new InternetAddress("example@example.com");
// Setting the mail address inside the mailer object mailer.setFrom(from);
// Setting the email address of the recipient inside
// mailer.mailer.setTo(InternetAddress.parse("example@example.com"));
// Setting the email server host for to be used for email.
// The email server should be SMTP-TLS enabled.
mailer.setHost("smtp.gmail.com", 587);
// Setting the credentials of the mail account
// mailer.setCredentials("example@example.com", "examplepassword");
return mailer;
}
catch (AddressException e)
{
log.error(e.getMessage());
}
}
この項で説明した、Site CaptureのBaseConfiguratorクラスに含まれるメソッドとインタフェースは、クローラのサイト・キャプチャ・プロセスを制御するためのものです。ここでは、メソッドとインタフェース、およびそれらのデフォルト実装についての概要を示します。
この項には次のトピックが含まれます:
Site CaptureのBaseConfiguratorクラスで使用されているインタフェースは、次のとおりです。
ファクトリ・メソッドは、次に示すインタフェースに含まれています。
createLinkExtractorは、LinkExtractorインタフェースに含まれています。
createResourceRewriterは、ResourceRewriterインタフェースに含まれています。
createMailerは、Mailerインタフェースに含まれています。
Site CaptureのBaseConfiguratorクラスで使用されているインタフェースは、次のとおりです。
デフォルト実装は、正規表現に基づいてリンクを抽出する、PatternLinkExtractorです。
また、Site Captureには、サンプルのリンク・エクストラクタ(およびサンプルのリソース・リライタ)があり、FirstSiteIIサンプル・クローラは、これらを使用して、WebCenter Sitesの動的なFirstSiteII Webサイトを静的サイトとしてダウンロードします。ソース・コードは、フォルダ<SC_INSTALL_DIR>/fw-site-capture/crawler/_sample/FirstSiteII/srcから入手可能です。
カスタムのリンク・エクストラクタ・ロジックを作成して、デプロイできます。
デフォルト実装は、リンクのリライトを省略するNullResourceRewriterと、正規表現に基づいてURLをリライトするPatternResourceRewriterです。
Site Captureには、サンプルのリソース・リライタ(およびサンプルのリンク・エクストラクタ)があり、FirstSiteIIサンプル・クローラは、これらを使用して、WebCenter Sitesの動的なFirstSiteII Webサイトを静的サイトとしてダウンロードします。ソース・コードは、フォルダ<SC_INSTALL_DIR>/fw-site-capture/crawler/_sample/FirstSiteII/srcから入手可能です。
URLをリライトする独自のロジックを作成して、デプロイできます。
デフォルト実装は、クローラ・レポートをSMTP-TLSメール・サーバーから送信するSMTPTlsMailerです。これとは別のタイプのサーバーから別のタイプのオブジェクトを電子メールで送信するように、ロジックをカスタマイズできます。
一覧に示したインタフェースには、この章で説明するデフォルトの実装があります。
Site Captureには、サンプルのリンク・エクストラクタとリソース・リライタがあり、どちらもFirstSiteIIサンプル・クローラによって使用されます。「カスタム・リンク・エクストラクタの作成とデプロイ」および「カスタムResourceRewriterの作成」を参照してください。