Web CrawlerがURLを処理する仕組み

一連のプラグインでURL処理を実行するため、Web CrawlerがURLを処理する仕組みを理解しておくと、新規プラグインがどこに組み込まれるかがわかります。

各URLは、次のようにスレッドで処理されます。

URL処理のフローチャート

プロセス・フローは次のようになります。
  1. スケジューラにより、フェッチの必要があるURLが決定されます(このステップはダイアグラムには表示されていません)。
  2. フェッチ: Protocolプラグイン(protocol-httpclientプラグインなど)では、URLのバイトをフェッチし、Contentオブジェクトに配置します。
  3. クロール時の認証: Authenticatorプラグインでは、フォームベース認証が必要かどうかを判断できます。認証が必要な場合は、ダイアグラムで示すように特定のログインURLがフェッチされます。
  4. 解析: Parseプラグインでは、コンテンツ(Contentオブジェクト)を解析し、Parseオブジェクトを生成します。アウトリンクも抽出します。たとえば、parse-htmlプラグインでは、Nekoライブラリを使用してHTMLページのDOM表示を抽出します。
  5. フィルタ: ParseFilterプラグインでは、未処理のコンテンツおよび解析済コンテンツに追加処理を実行します。これらのプラグインでは、特定のページからContentオブジェクトおよびParseオブジェクトの両方にアクセスできるためです。たとえば、endeca-xpath-filterプラグイン(アクティブ化されている場合)では、XPath式を使用してドキュメントを削除します。
  6. 生成: レコードが生成され、レコード出力ファイルに書き込まれます。また、スケジューラによって、フェッチ対象のアウトリンクがキューに入れられます。
プロセス・フローでは、サンプルhtmlmetatagsプラグインは解析済コンテンツの追加処理を実行するため、ステップ5の一部となります。