

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

# ウェブクローラーの統合
<a name="web-crawler-integration"></a>

Amazon Quick での Web Crawler 統合を使用すると、ウェブページをクロールしてインデックスを作成することで、ウェブサイトコンテンツからナレッジベースを作成できます。この統合は、さまざまな認証オプションでデータ取り込み機能をサポートしています。

## ウェブクローラーの機能
<a name="web-crawler-integration-capabilities"></a>

Web Crawler ユーザーは、ウェブサイトやウェブページに保存されているコンテンツについて質問できます。たとえば、ユーザーはドキュメントサイト、ナレッジベース、または複数のウェブページにわたる特定の情報を検索できます。

統合により、ユーザーは場所やタイプに関係なくウェブコンテンツにアクセスして理解できます。発行日、変更履歴、ページの所有権などのコンテキストの詳細を提供し、情報検出をより効率的にします。

**注記**  
Web Crawler 統合は、データ取り込みのみをサポートします。ウェブサイトやウェブサービスを管理するためのアクション機能は提供されていません。

## 前提条件
<a name="web-crawler-integration-prerequisites"></a>

Web Crawler 統合を設定する前に、以下があることを確認してください。
+ クロールとインデックスを作成するウェブサイト URLs。
+ Amazon Quick Enterprise サブスクリプション。
+ ファイアウォールの内側ではなく、接続に特別なブラウザプラグインを必要としないウェブサイト。

## ウェブサイトのアクセスと認証を準備する
<a name="web-crawler-integration-authentication"></a>

Amazon Quick で統合を設定する前に、ウェブサイトのアクセス認証情報を準備します。Web Crawler 統合は、さまざまな認証方法をサポートしています。

**認証なし**  
認証を必要としないウェブサイトのクローリングに使用します。

**基本認証**   
保護されたウェブサイトの標準 HTTP 基本認証。保護されたサイトにアクセスすると、ブラウザに 認証情報を尋ねるダイアログボックスが表示されます。  
**必要な認証情報:**  
+ **ログインページの URL** - ログインページの URL
+ **ユーザー名** - 基本的な認証ユーザー名
+ **パスワード** - 基本的な認証パスワード

**フォーム認証**   
HTML フォームベースのログインページを使用するウェブサイトの場合。XPath 式を指定して、ログインページのフォームフィールドを識別します。  
XPath (XML パス言語) は、HTML または XML ドキュメント内の要素をナビゲートするためのクエリ言語です。ウェブページ要素の XPath を検索するには、ブラウザで要素を右クリックして **Inspect** を選択します。開発者ツールで、強調表示された HTML コードを右クリックし、**コピー**を選択し、**XPath のコピー**を選択します。  
**必要な情報:**  
+ **ログインページの URL** - ログインフォームの URL (例: `https://example.com/login`)
+ **ユーザー名** - ログインユーザー名
+ **パスワード** - ログインパスワード
+ **Username フィールド XPath** - XPath to username input フィールド (例: `//input[@id='username']`)
+ **ユーザー名ボタン XPath** (オプション) - XPath to username ボタンフィールド (例: `//input[@id='username_button']`)
+ **パスワードフィールド XPath** - XPath to password 入力フィールド (例: `//input[@id='password']`)
+ **パスワードボタン XPath** - XPath to password ボタン (例: `//button[@type='password']`)

**SAML 認証**  
SAML ベースのシングルサインオン (SSO) 認証を使用するウェブサイトの場合。  
SAML (Security Assertion Markup Language) 認証は、SSO を有効にするフェデレーション ID 標準です。ユーザーは、各アプリケーションに直接認証情報を入力する代わりに、一元化された ID プロバイダー (Microsoft Azure AD や Okta など) を介して認証します。ID プロバイダーは、安全なトークンをアプリケーションに渡し、アクセスを許可します。  
**必要な情報:**  
+ **ログインページの URL** - SAML ログインページの URL
+ **ユーザー名** - SAML ユーザー名
+ **パスワード** - SAML パスワード
+ **Username フィールド XPath** - XPath to username input フィールド (例: `//input[@id='username']`)
+ **ユーザー名ボタン XPath** (オプション) - XPath to username ボタンフィールド (例: `//input[@id='username_button']`)
+ **パスワードフィールド XPath** - XPath to password 入力フィールド (例: `//input[@id='password']`)
+ **パスワードボタン XPath** - XPath to password ボタン (例: `//button[@type='password']`)

### XPath 設定の例
<a name="web-crawler-xpath-examples"></a>

フォームと SAML 認証を設定するには、次の XPath の例を使用します。

```
Username field examples:
//input[@id='username']
//input[@name='user']
//input[@class='username-field']

Password field examples:
//input[@id='password']
//input[@name='pass']
//input[@type='password']

Submit button examples:
//button[@type='submit']
//input[@type='submit']
//button[contains(text(), 'Login')]
```

## Web Crawler 統合をセットアップする
<a name="web-crawler-integration-setup"></a>

ウェブサイトのアクセス要件を準備したら、Amazon Quick で Web Crawler 統合を作成します。

1. Amazon Quick コンソールで、**統合**を選択します。

1. 統合オプションから**ウェブクローラー**を選択し、**追加**ボタン (プラス「＋」ボタン) をクリックします。

1. Web **Crawler からデータにアクセスする**を選択します。ウェブクローラー統合はデータアクセスのみをサポートします。アクションの実行はウェブクロールでは使用できません。

1. 統合の詳細と認証方法を設定し、必要に応じてナレッジベースを作成します。

   1. ウェブクローラー統合の認証タイプを選択します。

   1. 選択した認証方法に基づいて、必要な詳細を入力します。

   1. (オプション) VPC 接続を選択して、プライベートネットワークでホストされているサイトをクロールします。ここで VPC 接続を選択する前に、VPC 接続を管理者設定で設定する必要があります。詳細については、「[Amazon Quick で使用する VPC のセットアップ](vpc-setup-for-quicksight.md)」を参照してください。
**注記**  
統合の作成後に VPC 接続を変更することはできません。別の VPC 接続を使用するには、新しい統合を作成します。

   1. [**作成して続ける]** を選択します。

   1. ナレッジベースの名前と説明を入力します。

   1. クロールするコンテンツ URLs を追加します。

   1. **[作成]** を選択します。

**Create** を選択すると、データ同期が自動的に開始されます。

## クローリングを設定する
<a name="web-crawler-integration-configuration"></a>

クロールするウェブサイトとページ、およびコンテンツのフィルタリング方法を設定できます。

### URLsとコンテンツソースを設定する
<a name="web-crawler-url-configuration"></a>

クロールするウェブサイトとページを設定します。

#### 直接 URLs
<a name="web-crawler-direct-urls"></a>

クロールする個々の URLs を指定します。

```
https://example.com/docs
https://example.com/blog
https://example.com/support
```

**制限:** データセットあたり最大 10 URLs 

### コンテンツフィルターとクロール設定
<a name="web-crawler-content-filters"></a>

#### スコープ設定をクロールする
<a name="web-crawler-crawl-scope-settings"></a>

 これらの設定を表示するには、まずナレッジベースをセットアップしてから、詳細設定オプションを調べる必要があります。

**クロール深度**  
+ 範囲: 0～10 (デフォルト: 1)
+ 0 = 指定された URLs
+ 1 = リンクされたページを 1 レベル深く含める
+ 値が大きいほど、サイト内のリンクが深くなります。

**ページあたりの最大リンク数**  
+ デフォルト: 1000
+ 最大: 1,000
+ 各ページからフォローするリンクの数を制御します

**待機**時間  
+ デフォルト: 1
+ ページが準備完了状態になってからウェブクローラーが各ページを待機する時間 (秒単位）。メインテンプレートの後にロードされる動的 JavaScript コンテンツを持つページのこの値を増やします。

## ナレッジベースの管理
<a name="web-crawler-integration-knowledge-base"></a>

Web Crawler 統合を設定したら、クロールされたウェブサイトコンテンツからナレッジベースを作成および管理できます。

### 既存のナレッジベースを編集する
<a name="web-crawler-edit-knowledge-base"></a>

既存の Web Crawler ナレッジベースを変更できます。

1. Amazon Quick コンソールで、**ナレッジベース**を選択します。

1. リストから Web Crawler ナレッジベースを選択します。

1. **アクション**で 3 つのドットのアイコンを選択し、**ナレッジベースの編集**を選択します。

1. 必要に応じて設定を更新し、**保存**を選択します。

### 添付ファイルとファイルのクローリング
<a name="web-crawler-attachments"></a>

システムがウェブページからリンクされたファイルと添付ファイルを処理するかどうかを制御します。
+ **ファイル添付ファイルのクロールを有効にする** – このオプションを選択すると、PDF、ドキュメント、メディアファイルなどのPDFs。

### クローリング動作と同期設定
<a name="web-crawler-crawling-behavior"></a>

Web Crawler 統合は、次のクローリングプラクティスに従います。
+ **増分同期モデル:** 最初の同期はフルクロールを実行します。以降の同期は変更のみをキャプチャします。
+ **自動再試行:** 失敗したリクエストの組み込み再試行ロジック。
+ **重複処理:** URLs の自動検出と重複排除。
+ **クローラ識別:** リクエストヘッダーの user-agent 文字列aws-quick-on-behalf-of-<UUID>」で自身を識別します。

#### Sitemap 検出
<a name="web-crawler-sitemap-discovery"></a>

Web Crawler は、シード URLs に共通のサイトマップパスを追加して、サイトマップを自動的にチェックします。サイトマップ URLs を個別に指定する必要はありません。次のパスがチェックされます。

```
sitemap.xml
sitemap_index.xml
sitemap/sitemap.xml
sitemap/sitemap_index.xml
sitemaps/sitemap.xml
sitemap/index.xml
```

たとえば、シード URL が の場合`https://example.com/docs`、クローラは `https://example.com/docs/sitemap.xml`、 `https://example.com/docs/sitemap_index.xml`などをチェックします。

**注記**  
Web Crawler は、再帰的なサイトマップインデックスリファレンスに従いません。検出されたサイトマップに直接リストされている URLs のみが使用されます。robots.txt の Sitemap ディレクティブは、サイトマップ検出には使用されません。

#### Robots.txt コンプライアンス
<a name="web-crawler-robots-compliance"></a>

Web Crawler は robots.txt プロトコルを尊重し、ユーザーエージェントおよび許可/禁止ディレクティブを尊重します。これにより、クローラがサイトにアクセスする方法を制御できます。

##### robots.txt チェックの仕組み
<a name="web-crawler-robots-behavior"></a>
+ **ホストレベルのチェック:** Web Crawler は、robots.txt ファイルをホストレベルで読み取ります (例: example.com/robots.txt)
+ **マルチホストのサポート:** 複数のホストを持つドメインの場合、Web Crawler はホストごとにロボットルールを個別に尊重します。
+ **フォールバック動作:** ブロック、解析エラー、またはタイムアウトが原因で Web Crawler が robots.txt を取得できない場合、robots.txt が存在しないかのように動作します。この場合、クローラはサイトをクロールします。

##### サポートされている robots.txt フィールド
<a name="web-crawler-robots-fields"></a>

Web Crawler は、これらの robots.txt フィールドを認識します (フィールド名では大文字と小文字が区別されず、値は大文字と小文字が区別されます）。

`user-agent`  
ルールが適用されるクローラを識別します。

`allow`  
クロールできる URL パス。

`disallow`  
クロールできない URL パス。

`crawl-delay`  
ウェブサイトへのリクエスト間の待機時間 (秒単位）。

#### メタタグのサポート
<a name="web-crawler-meta-tags"></a>

Web Crawler は、データの使用方法を制御するために使用できるページレベルのロボットメタタグをサポートしています。HTML ページまたは HTTP ヘッダーにメタタグを含めることで、ページレベルの設定を指定できます。

##### サポートされているメタタグ
<a name="web-crawler-supported-meta-tags"></a>

`noindex`  
ページのインデックスを作成しないでください。このルールを指定しない場合、ページがインデックス化され、エクスペリエンスに表示される可能性があります。

`nofollow`  
このページのリンクは参照しないでください。このルールを指定しない場合、Web Crawler はページのリンクを使用してリンクされたページを検出できます。

カンマ (「noindex、nofollow」など) を使用して複数の値を組み合わせることができます。

**注記**  
メタタグを検出するには、Web Crawler がページにアクセスする必要があります。robots.txt でページをブロックしないでください。これにより、ページが復元されなくなります。

## トラブルシューティング
<a name="web-crawler-integration-troubleshooting"></a>

このセクションを使用して、Web Crawler 統合の一般的な問題を解決します。

### 認証の失敗
<a name="web-crawler-authentication-failures"></a>

**症状:**
+ 「認証できません」エラーメッセージ
+ 401/403 HTTP レスポンス
+ ログインページのリダイレクトループ
+ セッションタイムアウトエラー

**解決の手順:**

1. Amazon Quick インスタンスがセットアップされている AWS リージョンからサイトにアクセスできることを確認します。

1. 認証情報が正しく、有効期限が切れていないことを確認します。

1. 認証エンドポイントの可用性とアクセシビリティを確認します。

1. ブラウザ開発者ツールでテストして XPath 設定を検証します。

1. ブラウザネットワークログを確認して、認証フローを理解します。

1. ログインページの URL が正しく、アクセス可能であることを確認します。

1. 同じ認証情報を使用して認証を手動でテストします。

### アクセスと接続の問題
<a name="web-crawler-access-issues"></a>

**症状:**
+ 接続タイムアウトとネットワークエラー
+ ネットワークに到達できないエラー
+ DNS 解決の失敗

**解決の手順:**

1. ターゲットウェブサイトへのネットワーク接続を検証します。

1. サイトのアクセシビリティを検証する:
   + ターゲットドメインの DNS 解決を確認します。
   + SSL/TLS 設定と証明書を確認します。
   + 可能であれば、さまざまなネットワークからのアクセスをテストします。

### DNS 解決
<a name="web-crawler-dns-resolution"></a>

Web Crawler は DNS を使用してウェブサイトのホスト名 ( など`www.example.com`) を IP アドレスに解決します。デフォルトでは、パブリック DNS 解決が使用されます。

VPC 内でサイトをクロールする場合、クローラーが内部サイトのホスト名を解決できるように、プライベート DNS サーバーを設定する必要がある場合があります。VPC 設定に基づいて、次のいずれかのオプションを選択します。

1. **VPC 提供の DNS サーバー**を使用する — VPC で **DNS ホスト名**と **DNS 解決**の両方が有効になっている場合は、デフォルトの VPC DNS リゾルバー (通常は 10.0.0.2、またはより一般的には VPC CIDR base\$12) を使用できます。詳細については、「[VPC](vpc-amazon-virtual-private-cloud.md)」を参照してください。

1. **カスタム DNS サーバー**を使用する — VPC がカスタム DNS リゾルバーを使用している場合は、組織の内部 DNS サーバーの IP アドレスを指定します。ネットワーク管理者と協力して、このアドレスを取得します。

DNS サーバーを設定しない場合、クローラーはパブリックに登録されたホスト名のみを解決します。

### JavaScript 依存ナビゲーション
<a name="web-crawler-javascript-navigation"></a>

**症状:**
+ シード URL のみがインデックス作成され、追加のページは検出されません
+ クロールは正常に完了しますが、返されるドキュメントは 1 つだけです

**解決の手順:**

1. Web Crawler は JavaScript を実行し、ページコンテンツをレンダリングしますが、クリック、スクロール、ホバーアクションなどのユーザーインタラクションをシミュレートしません。サイトがユーザー操作 (クリックハンドラー、無限スクロール、動的メニューなど) を通じてナビゲーションリンクをロードした場合、クローラはそれらのリンクを検出できません。

1. ブラウザ開発者ツールのページを調べて、ナビゲーションリンクが標準`<a href="...">`要素を使用しているかどうかを確認します。リンクが代わりに JavaScript イベントハンドラーを介してワイヤリングされている場合、クローラはリンクをフォローしません。

1. サイトがサイトマップを提供する場合、Web Crawler はシード URLs。サイトマップが標準の場所 ( など`/sitemap.xml`) で使用可能であることを確認します。これにより、クローラはページ内のリンク抽出に頼ることなく追加の URLs を検出できます。

1. または、すべてのターゲットページの URLsシード URLs。

1. コンテンツを HTML、PDF、またはテキストファイルとしてエクスポートできる場合は、代わりに Amazon S3 コネクタをデータソースとして使用することを検討してください。

### クロールとコンテンツの問題
<a name="web-crawler-crawl-issues"></a>

**症状:**
+ 欠落または不完全なコンテンツ
+ 不完全なクロールまたは早期終了
+ レート制限エラー (429 レスポンス)
+ コンテンツが適切にインデックス化されていない

**解決の手順:**

1. robots.txt の制限を確認します。
   + robots.txt ファイルでクロールの制限を確認します。
   + クローラがターゲットパスにアクセスできることを確認します。
   + robots.txt コンプライアンスがコンテンツをブロックしていないことを確認します。

1. レート制限とスロットリングを確認します。
   + レート制限情報のレスポンスヘッダーをモニタリングします。
   + 適切なクロール遅延を実装します。

1. URL パターンとフィルターを確認します。
   + 正規表現パターンの精度をテストします。
   + URL の形式と構造を確認します。
   + 包含/除外パターンロジックを検証します。

1. コンテンツの制限を確認します。
   + ページの noindex メタタグを確認します。
   + コンテンツタイプのサポートを確認します。
   + コンテンツサイズが制限内であることを確認します。

1. クローラーがクロールを開始する前に、コンテンツがページにロードされるように待機時間を更新します。

### 既知の制限事項
<a name="web-crawler-integration-limitations"></a>

Web Crawler の統合には、次の制限があります。
+ **URL 制限:** データセットあたり最大 10 URLs。シード URLs フィールドにサイトマップ URL を指定することはできません。
+ **クロール深度:** 最大クロール深度は 10 レベル
+ **セキュリティ要件:** ウェブプロキシ設定に必要な HTTPS

VPC 接続でウェブクローラーを使用する場合、次の制限が適用されます。
+ **HTTP/3 (QUIC) サポートなし:** HTTP/3 はサポートされていません。ほとんどのサイトは自動的に HTTP/2 にフォールバックされますが、HTTP/3 専用に設定されたサイトにはアクセスできません。
+ **TCP 経由の DNS が必要:** DNS 解決には TCP を使用する必要があります。VPC クローリングを設定する前に、DNS サーバーが TCP 経由の DNS をサポートしていることを確認します。
+ **パブリックに信頼された SSL 証明書が必要:** 内部サイトは、よく知られている認証機関 (Let's Encrypt や DigiCert など) の証明書を使用する必要があります。自己署名 CA 証明書またはプライベート CA 証明書を使用しているサイトは接続に失敗します。
+ **IPv4 のみ:** IPv4 アドレスのみがサポートされています。IPv6 経由でのみアクセス可能なサイトはクロールできません。