翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Web Crawler
Web Crawler は、マネージドナレッジベースで使用するために指定した URLs に接続してクロールします。Web Crawler はシード URLs から始まる HTML ページを横断し、クロールの範囲と制限に従って子リンクをたどります。サイトマップ URLs点として指定することもできます。Web Crawler は、RFC 9309 に従って robots.txt
重要
クロールするウェブサイトを選択するときは、Amazon 適正使用ポリシー
注記
Web Crawler は、ドキュメントレベルのアクセスコントロール (ACLsをサポートしていません。インデックス付きコンテンツはすべて、ナレッジベースにアクセスできるすべてのユーザーがアクセスできます。ACL フィルタリングが必要な場合は、それをサポートするコネクタ (Amazon S3、SharePoint、OneDrive など) を使用します。
サポートされている機能
-
複数のシード URLsクロールする
-
設定可能なクロール深度、レート制限、links-per-URL数制限
-
クロールスコープコントロール: 同じホストとパス、ホストのみ、またはホストとサブドメイン
-
URL パターンフィルター (包含正規表現と除外正規表現)
-
ウェブページ (PDFs、ドキュメントなど) からリンクされた添付ファイルをクロールする
-
保護されたサイトの認証: 基本、フォームベース、または SAML
-
追加、更新、削除されたコンテンツの増分コンテンツ同期
認証方法
Web Crawler は 4 つの認証方法をサポートしています。ターゲットサイトがユーザーを認証する方法に一致する方法を選択します。サインインしていないパブリックサイトの場合は、 を使用しますNO_AUTH。
| 方法 | 認証方法 | どのようなときに使うか |
|---|---|---|
認証なし (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 データソースのセットアップには、次のステップが含まれます。
-
(サイトにサインインが必要な場合) 認証情報を準備します。認証方法の認証情報を AWS Secrets Manager シークレットに保存します。「認証情報」を参照してください。
-
データソースを接続します。 AWS マネジメントコンソール または API を使用して、ナレッジベースで Web Crawler データソースを作成します。「データソースを作成する」を参照してください。
データソースを作成する
コネクタパラメータ
データソース設定では、次のコネクタパラメータを使用します。Web Crawler を使用するには、 でコネクタタイプWEBとして を指定しますconnectorParameters。ラップするフィールド connectorParameters ( deletionProtectionConfigurationや などmediaExtractionConfiguration) については、「」を参照してくださいデータソースを接続する。
| フィールド | 必要 | 説明 |
|---|---|---|
seedUrls |
条件付き | クローリングを開始するシード URLs のリスト。最大 10 を指定しない限り必須ですsiteMapUrls。 |
siteMapUrls |
条件付き | サイトマップ URLsのリスト。最大 3。を指定しない限り必須ですseedUrls。 |
authType |
はい | 認証タイプ: NO_AUTH、BASIC_AUTH、FORM、または SAML。「認証方法」を参照してください。 |
secretArn |
条件付き | 認証情報を含む AWS Secrets Manager シークレットの ARN。authType が でない場合は必須ですNO_AUTH。 |
| フィールド | 必要 | 説明 |
|---|---|---|
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やその他のドキュメントなど) をクロールするかどうか。 |
| フィールド | 必要 | 説明 |
|---|---|---|
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、制限より大きいファイルが取り込まれないことを受け入れます。 |