

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

# Web Crawler
<a name="kb-managed-ds-webcrawler"></a>

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

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

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

## サポートされている機能
<a name="kb-managed-supported-features-webcrawler"></a>
+ 複数のシード URLsクロールする
+ 設定可能なクロール深度、レート制限、links-per-URL数制限
+ クロールスコープコントロール: 同じホストとパス、ホストのみ、またはホストとサブドメイン
+ URL パターンフィルター (包含正規表現と除外正規表現)
+ ウェブページ (PDFs、ドキュメントなど) からリンクされた添付ファイルをクロールする
+ 保護されたサイトの認証: 基本、フォームベース、または SAML
+ 追加、更新、削除されたコンテンツの増分コンテンツ同期

## 認証方法
<a name="kb-managed-webcrawler-auth-methods"></a>

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 ベースのシングルサインオンを使用するサイト。 | 

## 前提条件
<a name="kb-managed-prereqs-webcrawler"></a>

**クロールするウェブサイトについては、以下を確認してください**。
+ ウェブサイトとそのコンテンツをクロールするアクセス許可がある。
+ サイトの `robots.txt`が、クロールする URLsを許可していないことを確認します。`robots.txt` ファイルが見つからない場合、ウェブクローラーはデフォルトで を許可しません。
+ サイトにサインインが必要な場合は、認証方法 (基本、フォーム、または SAML) を特定します。フォームと SAML の場合は、ユーザー名フィールド、パスワードフィールドの XPath 式を見つけ、ログインページで送信ボタンを見つけます。XPath を検索するには、ブラウザでフォーム要素を右クリックして **Inspect** を選択し、開発者ツールから XPath をコピーします。

** AWS アカウントで、以下を確認してください**。
+ サイトに認証が必要な場合は、認証情報を [AWS Secrets Manager シークレット](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)に保存し、その Amazon リソースネーム (ARN) を書き留めます。正確なキーと値のペアについては、「」を参照してください[認証情報](#kb-managed-webcrawler-credentials)。
+ ナレッジベースの AWS Identity and Access Management (IAM) ロール/アクセス許可ポリシーに、データソースに接続するために必要なアクセス許可を含めます。必要なアクセス許可の詳細については、「」を参照してください[データソースにアクセスするためのアクセス許可](kb-permissions.md#kb-permissions-access-ds)。

## Web Crawler データソースをセットアップする方法
<a name="kb-managed-webcrawler-workflow"></a>

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

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

1. **データソースを接続します。** AWS マネジメントコンソール または API を使用して、ナレッジベースで Web Crawler データソースを作成します。「[データソースを作成する](#kb-managed-ds-webcrawler-create)」を参照してください。

## データソースを作成する
<a name="kb-managed-ds-webcrawler-create"></a>

------
#### [ Console ]

**Web Crawler をマネージドナレッジベースに接続するには**

1. **データソース**で、データソースの名前を指定します。

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

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

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

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

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

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

------
#### [ API ]

Web Crawler データソースを作成するには、Amazon Bedrock エージェントのビルドタイムエンドポイントを使用して [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html) リクエストを送信します。次の 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/.*}}"
                ]
            }
        }
    }
}
```

認証されたサイトの場合は、 `authType`を `BASIC_AUTH`、`FORM`、または に設定し`SAML`、 `secretArn`を に追加します`connectionConfiguration`。

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

------

## コネクタパラメータ
<a name="kb-managed-config-webcrawler"></a>

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


**connectionConfiguration**  

| フィールド | 必要 | 説明 | 
| --- | --- | --- | 
| seedUrls | 条件付き | クローリングを開始するシード URLs のリスト。最大 10 を指定しない限り必須ですsiteMapUrls。 | 
| siteMapUrls | 条件付き | サイトマップ URLsのリスト。最大 3。を指定しない限り必須ですseedUrls。 | 
| authType | はい | 認証タイプ: NO\_AUTH、BASIC\_AUTH、FORM、または SAML。「[認証方法](#kb-managed-webcrawler-auth-methods)」を参照してください。 | 
| 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" です。 | 

## 認証情報
<a name="kb-managed-webcrawler-credentials"></a>

ウェブサイトで認証が必要な場合は、認証情報を 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 **を選択します。

## トラブルシューティング
<a name="kb-managed-ds-webcrawler-troubleshooting"></a>


**一般的なウェブクローラーの問題、原因、修正**  

| 症状 | 考えられる原因 | 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、制限より大きいファイルが取り込まれないことを受け入れます。 | 