View a markdown version of this page

Web Crawler - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Web Crawler

Web Crawler は、マネージドナレッジベースで使用するために指定した URLs に接続してクロールします。Web Crawler はシード URLs から始まる HTML ページを横断し、クロールの範囲と制限に従って子リンクをたどります。サイトマップ URLs点として指定することもできます。Web Crawler は、RFC 9309 に従って robots.txt を尊重します。

重要

クロールするウェブサイトを選択するときは、Amazon 適正使用ポリシーおよびその他のすべての Amazon 規約に従う必要があります。Web Crawler は、独自のウェブページ、またはクロールする権限を持つウェブページのインデックス作成にのみ使用します。

注記

Web Crawler は、ドキュメントレベルのアクセスコントロール (ACLsをサポートしていません。インデックス付きコンテンツはすべて、ナレッジベースにアクセスできるすべてのユーザーがアクセスできます。ACL フィルタリングが必要な場合は、それをサポートするコネクタ (Amazon S3、SharePoint、OneDrive など) を使用します。

サポートされている機能

  • 複数のシード URLsクロールする

  • 設定可能なクロール深度、レート制限、links-per-URL数制限

  • クロールスコープコントロール: 同じホストとパス、ホストのみ、またはホストとサブドメイン

  • URL パターンフィルター (包含正規表現と除外正規表現)

  • ウェブページ (PDFs、ドキュメントなど) からリンクされた添付ファイルをクロールする

  • 保護されたサイトの認証: 基本、フォームベース、または SAML

  • 追加、更新、削除されたコンテンツの増分コンテンツ同期

認証方法

Web Crawler は 4 つの認証方法をサポートしています。ターゲットサイトがユーザーを認証する方法に一致する方法を選択します。サインインしていないパブリックサイトの場合は、 を使用しますNO_AUTH

Web Crawler 認証方法
方法 認証方法 どのようなときに使うか
認証なし (NO_AUTH) クローラは認証情報なしでリクエストを送信します。 サインインを必要としないパブリックウェブサイト。
基本認証 (BASIC_AUTH) クローラは、シークレットからユーザー名とパスワードを含む HTTP Authorization: Basicヘッダーを送信します。 HTTP 基本認証 (ブラウザ形式のユーザー名とパスワードダイアログ) で保護されたサイト。
フォーム認証 (FORM) クローラは HTML フォームを送信してサインインします。フォームフィールドを検索するログイン URL、認証情報、XPath 式を指定します。 サインインに HTML フォームを使用するサイト。
SAML 認証 (SAML) クローラは、SAML ID プロバイダーのログインフォームを使用してサインインします。フォームフィールドを検索する IdP ログイン URL、認証情報、および XPath 式を指定します。 SAML ベースのシングルサインオンを使用するサイト。

前提条件

クロールするウェブサイトについては、以下を確認してください

  • ウェブサイトとそのコンテンツをクロールするアクセス許可がある。

  • サイトの robots.txtが、クロールする URLsを許可していないことを確認します。robots.txt ファイルが見つからない場合、ウェブクローラーはデフォルトで を許可しません。

  • サイトにサインインが必要な場合は、認証方法 (基本、フォーム、または SAML) を特定します。フォームと SAML の場合は、ユーザー名フィールド、パスワードフィールドの XPath 式を見つけ、ログインページで送信ボタンを見つけます。XPath を検索するには、ブラウザでフォーム要素を右クリックして Inspect を選択し、開発者ツールから XPath をコピーします。

AWS アカウントで、以下を確認してください

  • サイトに認証が必要な場合は、認証情報を AWS Secrets Manager シークレットに保存し、その Amazon リソースネーム (ARN) を書き留めます。正確なキーと値のペアについては、「」を参照してください認証情報

  • ナレッジベースの AWS Identity and Access Management (IAM) ロール/アクセス許可ポリシーに、データソースに接続するために必要なアクセス許可を含めます。必要なアクセス許可の詳細については、「」を参照してくださいデータソースにアクセスするためのアクセス許可

Web Crawler データソースをセットアップする方法

Web Crawler データソースのセットアップには、次のステップが含まれます。

  1. (サイトにサインインが必要な場合) 認証情報を準備します。認証方法の認証情報を AWS Secrets Manager シークレットに保存します。「認証情報」を参照してください。

  2. データソースを接続します。 AWS マネジメントコンソール または API を使用して、ナレッジベースで Web Crawler データソースを作成します。「データソースを作成する」を参照してください。

データソースを作成する

Console
Web Crawler をマネージドナレッジベースに接続するには
  1. データソースで、データソースの名前を指定します。

  2. データソースドロップダウンからウェブクローラーを選択します。

  3. Source で、ソース URLs (最大 10 個の開始点 URLsまたはソースサイトマップ (最大 3 個のサイトマップ URLsを選択します。

  4. URLs を追加するURLs テキスト領域に URL を 1 行に 1 つずつ入力します。

  5. 認証で、認証なし基本認証フォーム認証、または SAML 認証を選択します。認証なし以外の方法では、認証情報を保存する AWS Secrets Manager シークレットを選択または作成します。

  6. (オプション) 同期スコープを展開して、クロール深度 (0~10)、URL あたりの最大リンク数 (1~1000)、1 分あたりにクロールされる最大 URLs (1~300)、クロールスコープ: デフォルト (同じホストとシード URL と同じ初期 URL パス)、ホストのみ (同じホスト、任意のパス)、またはサブドメイン (サブドメインを含む同じプライマリドメイン) を設定します。

  7. (オプション) URL フィルターパターンを展開して、特定の URLs を含む正規表現または除外する正規表現を追加します。

API

Web Crawler データソースを作成するには、Amazon Bedrock エージェントのビルドタイムエンドポイントを使用して CreateDataSource リクエストを送信します。次の AWS Command Line Interface 例では、認証なしでパブリックサイトをクロールするデータソースを作成します。各フィールドの説明については、以下のコネクタパラメータリファレンスを参照してください。

aws bedrock-agent create-data-source \ --name "WebCrawler-connector" \ --knowledge-base-id "your-knowledge-base-id" \ --data-source-configuration file://webcrawler-managed-connector.json

webcrawler-managed-connector.json ファイルには以下が含まれています。

{ "type": "MANAGED_KNOWLEDGE_BASE_CONNECTOR", "managedKnowledgeBaseConnectorConfiguration": { "connectorParameters": { "type": "WEB", "version": "1", "connectionConfiguration": { "seedUrls": [ "https://docs.example.com" ], "authType": "NO_AUTH" }, "crawlConfiguration": { "crawlDepth": 3, "maxLinksPerUrl": 100, "maxCrawledUrlsPerMinute": 50, "syncScope": "SUB_DOMAINS", "crawlAttachments": true }, "filterConfiguration": { "exclusionPatterns": [ "https://docs.example.com/private/.*" ] } } } }

認証されたサイトの場合は、 authTypeBASIC_AUTHFORM、または に設定しSAMLsecretArnを に追加しますconnectionConfiguration

マネージドナレッジベースの場合、 CreateDataSourceは非同期です。オペレーションが完了すると、データソースのステータスは から CREATING に移行AVAILABLEします。

コネクタパラメータ

データソース設定では、次のコネクタパラメータを使用します。Web Crawler を使用するには、 でコネクタタイプWEBとして を指定しますconnectorParameters。ラップするフィールド connectorParameters ( deletionProtectionConfigurationや などmediaExtractionConfiguration) については、「」を参照してくださいデータソースを接続する

connectionConfiguration
フィールド 必要 説明
seedUrls 条件付き クローリングを開始するシード URLs のリスト。最大 10 を指定しない限り必須ですsiteMapUrls
siteMapUrls 条件付き サイトマップ URLsのリスト。最大 3。を指定しない限り必須ですseedUrls
authType はい 認証タイプ: NO_AUTHBASIC_AUTHFORM、または SAML。「認証方法」を参照してください。
secretArn 条件付き 認証情報を含む AWS Secrets Manager シークレットの ARN。authType が でない場合は必須ですNO_AUTH
crawlConfiguration (オプション)
フィールド 必要 説明
crawlDepth いいえ 最大クロール深度。範囲は 0~10 です。 0 は指定された URLs のみをクロールします。値が大きいほど、サイトのより深いリンクに従います。デフォルトは 2 です。
maxLinksPerUrl いいえ URL ごとにフォローするリンクの最大数。範囲は 1~1000 です。デフォルトは 100 です。
maxCrawledUrlsPerMinute いいえ 1 分あたりにクロールされる URLs の最大数 (レート制限)。範囲は 1~300 です。
implicitWaitInSeconds いいえ ページが準備完了状態になってからクローラーが読み取るまでの待機時間。秒単位。メインテンプレートの後にロードされる動的 JavaScript コンテンツを持つページでは、これを増やします。
syncScope いいえ フォローするリンクの範囲。(シード URL PATH_SPECIFIC と同じホストおよび同じ初期 URL パス)、 DOMAINS_ONLY (シード URL と同じホスト、任意のパス)、または SUB_DOMAINS (サブドメインを含む同じプライマリドメイン) のいずれか。省略すると、クローラはシード URL と同じホストと同じ初期 URL パスのみをクロールします。
crawlAttachments いいえ ウェブページからリンクされたファイルや添付ファイル (PDFsやその他のドキュメントなど) をクロールするかどうか。
filterConfiguration (オプション)
フィールド 必要 説明
inclusionPatterns いいえ 正規表現のリスト。少なくとも 1 つのパターンに一致する URLs のみがクロールされ、インデックスが作成されます。
exclusionPatterns いいえ 正規表現のリスト。任意のパターンに一致する URLs は、クロールまたはインデックス作成されません。
maxFileSizeInMegaBytes いいえ クローラが取り込む 1 つのファイルの最大サイズ、メガバイト単位。数値文字列として を指定します (例: "500")。デフォルトは "500" です。

認証情報

ウェブサイトで認証が必要な場合は、認証情報を AWS Secrets Manager シークレットに保存します。シークレット形式は、選択した認証タイプによって異なります。

基本認証 (BASIC_AUTH)

{ "userName": "your-username", "password": "your-password", "authentication": "BASIC_AUTH" }

フォーム認証 (FORM)

フォームベースの認証の場合は、ユーザー名フィールド、パスワードフィールドを識別する XPath 式を指定し、ログインページで送信ボタンを指定します。

{ "authentication": "FORM", "loginPageUrl": "https://example.com/login", "userName": "your-username", "password": "your-password", "userNameFieldXpath": "//input[@name='username']", "passwordFieldXpath": "//input[@name='password']", "userNameButtonXpath": "//button[@type='submit']", "passwordButtonXpath": "//button[@type='submit']" }

SAML 認証 (SAML)

SAML 認証の場合は、フォームフィールドに SAML ID プロバイダーのログインページの URL と XPath 式を指定します。

{ "authentication": "SAML", "loginPageUrl": "https://your-idp.example.com/login", "userName": "your-username", "password": "your-password", "userNameFieldXpath": "//input[@name='username']", "passwordFieldXpath": "//input[@name='password']", "userNameButtonXpath": "//button[@type='submit']", "passwordButtonXpath": "//button[@type='submit']" }
注記

ブラウザで XPath を検索するには、ログインページでフォーム要素を右クリックし、Inspect を選択します。開発者ツールで、強調表示された HTML を右クリックし、Copy を選択し、Copy XPath を選択します。

トラブルシューティング

一般的なウェブクローラーの問題、原因、修正
症状 考えられる原因 Fix
同期は正常に完了しますが、シード URL のみがインデックス化されます。 サイトナビゲーションリンクは、標準<a href="...">要素ではなく JavaScript イベントハンドラー (クリック、スクロール、動的メニュー) を介して接続されます。クローラは JavaScript をレンダリングしますが、ユーザーインタラクションをシミュレートしないため、これらのリンクを検出できません。 クロールするページに追加のシード URLs を指定するか、クロールするすべての URL を一覧表示するサイトマップ URL を指定します。コンテンツをファイルとしてエクスポートできる場合は、代わりに Amazon S3 コネクタの使用を検討してください。
同期は、コンテンツがないか、予想よりも少ないページを返します。 サイトの robots.txtファイルは、クロールする URLs を許可しないか、ページにnoindexメタタグがあります。 クロールするパスを許可するようにホストrobots.txtの を更新するか、インデックスを作成するページからnoindexメタタグを削除します。メタタグも検出robots.txtする場合は、 のページをブロックしないでください。クローラはメタタグを読み取るためにページにアクセスする必要があります。
認証が失敗する (HTTP 401 または 403、ログインリダイレクトループ、またはセッションタイムアウト)。 認証情報が正しくないか期限切れであるか、XPath 式がログインページの要素と一致しません。 シークレットの認証情報を確認します。FORM または SAML 認証の場合は、ブラウザの開発者ツールで各 XPath を検証し、 を検証しますloginPageUrl
同期はレート制限 (HTTP 429) または不完全なコンテンツで失敗します。 クローラは、サイトが許可するよりも速くページを取得しています。 を小さくするかmaxCrawledUrlsPerMinute、ページの準備が整った後implicitWaitInSecondsにロードされる動的コンテンツがあるサイトの を増やします。
ページが想定よりも大きいため、ページがありません。 ページまたは添付ファイルが を超えていますmaxFileSizeInMegaBytes を増やすかmaxFileSizeInMegaBytes、制限より大きいファイルが取り込まれないことを受け入れます。