

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为知识库爬取网页
<a name="webcrawl-data-source-connector"></a>

Amazon Bedrock 提供的 Web 爬网程序可以连接并爬取您选择在 Amazon Bedrock 知识库中使用的 URL。您可以根据所选 URL 的设定范围或限制来爬取网站页面。您可以使用适用于 Amazon Bedrock 的[AWS 管理控制台或 [CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)API（参见 Amazon Bedrock](https://console.aws.amazon.com/bedrock/home) [支持的软件开发工具包和](https://docs.aws.amazon.com/bedrock/latest/APIReference/welcome.html)）来抓取网站页面。 AWS CLI目前，只有 Amazon OpenSearch Serverless 矢量存储可用于此数据源。

**注意**  
Web 爬网程序数据来源连接器目前为预览版，可能随时发生变化。

当选择要爬取的网站时，您必须遵守 [Amazon 可接受使用政策](https://aws.amazon.com/aup/)以及所有其他 Amazon 条款。请记住，您只能使用 Web 爬网程序为您自己的网页或您有权爬取的网页编制索引，并且必须遵守 robots.txt 配置。

Web 爬网程序根据 [RFC 9309](https://www.rfc-editor.org/rfc/rfc9309.html) 遵守 robots.txt 标准

可以爬取的网页内容项目数量有限制，每个内容项目的 MB 数量是有限的。请参阅 [Quotas for knowledge bases](https://docs.aws.amazon.com/bedrock/latest/userguide/quotas.html)。

**Topics**
+ [支持的特征](#supported-features-webcrawl-connector)
+ [先决条件](#prerequisites-webcrawl-connector)
+ [连接配置](#configuration-webcrawl-connector)

## 支持的特征
<a name="supported-features-webcrawl-connector"></a>

Web 爬网程序从种子 URL 开始连接并爬取 HTML 网页，遍历同一主域名和路径下的所有子链接。如果任何 HTML 页面引用了支持的文档，Web 爬网程序就会爬取这些文档，无论它们是否在同一主域名内。您可以通过更改爬网配置来修改爬取行为。请参阅 [连接配置](#configuration-webcrawl-connector)。

您可以执行以下操作：
+ 选择多个要爬取的源 URL，并将 URL 的范围设置为仅爬取主机或同时包含子域。
+ 爬取源 URL 中包含的静态网页。
+ 指定自定义用户代理后缀，为自己的爬网程序设置规则。
+ 包含或排除与筛选模式匹配的某些 URL。
+ 遵守标准 robots.txt 指令，例如 Allow 和 Disallow。
+ 限制要抓取的 URL 范围，也可以选择排除符合筛选模式的 URL。
+ 限制爬取 URL 的速率和要爬取的最大页面数。
+ 在 Amazon 中查看已抓取网址的状态 CloudWatch

## 先决条件
<a name="prerequisites-webcrawl-connector"></a>

**要使用 Web 爬网程序，请确保您：**。
+ 检查是否授权您爬取源 URL。
+ 检查源 URL 对应的 robots.txt 路径是否阻止了爬取 URL。Web 爬网程序遵守 robots.txt 标准：如果未找到该网站的 robots.txt，则默认为 `disallow`。Web 爬网程序根据 [RFC 9309](https://www.rfc-editor.org/rfc/rfc9309.html) 遵守 robots.txt 标准。您还可以指定自定义用户代理标头后缀，为自己的爬网程序设置规则。有关更多信息，请参阅本页面上[连接配置](#configuration-webcrawl-connector)说明中的 Web 爬网程序 URL 访问权限。
+ [启用 CloudWatch 日志传送](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-bases-logging.html)并按照 Web Crawler 日志示例，查看摄取 Web 内容的数据提取任务的状态，以及是否无法检索某些 URL。

**注意**  
当选择要爬取的网站时，您必须遵守 [Amazon 可接受使用政策](https://aws.amazon.com/aup/)以及所有其他 Amazon 条款。请记住，您必须仅使用 Web 爬网程序为您自己的网页或您有权编制索引的网页来爬取。

## 连接配置
<a name="configuration-webcrawl-connector"></a>

有关抓取 URL 的同步范围、 inclusion/exclusion 过滤器、URL 访问权限、增量同步及其工作原理的更多信息，请选择以下选项：

### 爬取 URL 的同步范围
<a name="ds-sync-scope"></a>

您可以根据每个页面 URL 与种子 URL 的特定关系来限制要爬取的 URL 范围。为了加快爬取速度，您可以将 URL 限制为与种子 URL 具有相同主机和初始 URL 路径的 URL。要进行更广泛的爬取，您可以选择爬取同一主机或种子 URL 的任何子域内的 URL。

可从以下选项中进行选择。
+ 默认：将爬取限制为属于同一主机且具有相同初始 URL 路径的网页。例如，如果种子 URL 为 “https://aws.amazon.com/bedrock/”，则只有此路径和从该路径延伸的网页才会被抓取，例如 “https://aws.amazon.com/bedrock/agents/”。例如，不会抓取类似 https://aws.amazon.com/ec2/ “” 的同级网址。
+ 仅限主机：将爬取限制为属于同一主机的网页。例如，如果种子 URL https://aws.amazon.com/bedrock/ 为 “”，则还会抓取带有 “https://aws.amazon.com” 的网页，比如 “https://aws.amazon.com/ec2”。
+ 子域名：包括与种子 URL 具有相同主域名的任何网页的爬取。例如，如果种子网址为 “https://aws.amazon.com/bedrock/”，则任何包含 “amazon.com”（子域名）的网页都将被抓取，例如 “”。https://www.amazon.com

**注意**  
确保您没有爬取可能过多的网页。不建议在没有筛选条件或范围限制的情况下爬取大型网站，例如 wikipedia.org。爬取大型网站需要很长时间。  
如果文件类型没有排除模式，则无论范围大小都会爬取[支持的文件类型](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ds.html)。

Web 爬网程序支持静态网站。

您还可以限制爬取 URL 的速率以控制对爬取速度的节流。您可以设置每分钟在每个主机上爬取的最大 URL 数量。此外，您还可以设置要爬取的网页总数的最大数量（最多 25000）。请注意，如果源网址中的网页总数超过您设置的最大值，则您的数据源 sync/ingestion 作业将失败。

### Inclusion/exclusion 过滤器
<a name="ds-inclusion-exclusion"></a>

您可以根据自己的范围包含或排除某些 URL。如果文件类型没有排除模式，则无论范围大小都会爬取[支持的文件类型](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ds.html)。如果您指定了包含和排除筛选条件，且两者都与 URL 匹配，则优先排除筛选条件，不会爬取网页内容。

**重要**  
有问题的正则表达式模式筛选条件会导致[灾难性的回溯](https://docs.aws.amazon.com/codeguru/detector-library/python/catastrophic-backtracking-regex/)和瞻前顾后，因此会被拒绝。

排除以“.pdf”结尾的 URL 或 PDF 网页附件的正则表达式筛选模式示例：*".\*\\.pdf$"*

仅抓取特定路径下网址的包含过滤器模式*示例：“https://www\\ .example\\。 com/docs/。 \*”*

### Web 爬网程序 URL 访问权限
<a name="ds-webcrawl-identity-crawling"></a>

您可以使用 Web 爬网程序来爬取您有权爬取的网站的页面。

当选择要爬取的网站时，您必须遵守 [Amazon 可接受使用政策](https://aws.amazon.com/aup/)以及所有其他 Amazon 条款。请记住，您必须仅使用 Web 爬网程序为您自己的网页或您有权编制索引的网页来爬取。

Web 爬网程序根据 [RFC 9309](https://www.rfc-editor.org/rfc/rfc9309.html) 遵守 robots.txt 标准

您可以将某些用户代理机器人指定为“允许”或“不允许”用户代理爬取您的源 URL。您可以修改网站的 robots.txt 文件来控制 Web 爬网程序如何爬取您的源 URL。爬网程序将首先在 robots.txt 文件中查找 `bedrockbot` 规则，然后查找通用 `bedrockbot-UUID ` 规则。

您还可以添加 User-Agent 后缀，该后缀可用于在机器人保护系统中将您的爬虫列入许可名单。请注意，无需将此后缀添加到 `robots.txt` 文件中来确保没有人可以仿冒用户代理字符串。例如，要让 Web 爬网程序能够爬取所有网站内容并禁止其他任何机器人爬取，请使用以下指令：

```
User-agent: bedrockbot-UUID # Amazon Bedrock Web Crawler
Allow: / # allow access to all pages
User-agent: * # any (other) robot
Disallow: / # disallow access to any pages
```

### 增量同步
<a name="ds-incremental-sync"></a>

每次运行 Web 爬网程序时，都会检索从符合范围与筛选条件的源 URL 可以访问的所有 URL 的内容。对于首次同步所有内容后的增量同步，Amazon Bedrock 会使用新内容和修改过的内容更新知识库，并删除不再存在的旧内容。有时，爬网程序可能无法分辨网站内容是否已被删除；在这种情况下，它会偏向于将旧内容保留在知识库中。

要将您的数据源与知识库同步，请使用 [StartIngestionJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_StartIngestionJob.html)API 或在控制台中选择您的知识库，然后在数据源概述部分中选择**同步**。

**重要**  
您从数据来源同步的所有数据都可供有检索数据的 `bedrock:Retrieve` 权限的任何人使用。这也可以包括任何具有受控数据来源权限的数据。有关更多信息，请参阅[知识库权限](https://docs.aws.amazon.com/bedrock/latest/userguide/kb-permissions.html)。

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

**将 Web 爬网程序数据来源连接到知识库**

1. 按照[在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库](knowledge-base-create.md)中的步骤操作，然后选择 **Web 爬网程序**作为数据来源。

1. 提供数据来源的名称和可选的描述。

1. 提供要爬取的 URL 的**来源 URL**。选择**添加源 URL**，最多可添加 9 个其他 URL。提供源 URL 即表示您确认自己有权爬取其域。

1. 在**高级设置**部分，您可以选择进行以下配置：
   + **用于临时数据存储的 KMS 密钥。**— 您可以加密临时数据，同时使用默认密钥 AWS 托管式密钥 或您自己的 KMS 密钥将数据转换为嵌入式数据。有关更多信息，请参阅 [加密数据提取期间的临时数据存储](encryption-kb.md#encryption-kb-ingestion)。
   + **数据删除策略** – 您可以删除数据来源的向量嵌入（这些向量嵌入默认存储在向量存储中），也可以选择保留向量存储数据。

1. （可选）为 **bedrock-UUID** 提供用户代理后缀，用于在爬网程序或机器人访问 Web 服务器时对其进行标识。

1. 在**同步范围**部分中，进行以下配置：

   1. 选择用于爬取您的源 URL 的**网站域范围**：
      + 默认：将爬取限制为属于同一主机且具有相同初始 URL 路径的网页。例如，如果种子 URL 为 “https://aws.amazon.com/bedrock/”，则只有此路径和从该路径延伸的网页才会被抓取，例如 “https://aws.amazon.com/bedrock/agents/”。例如，不会抓取类似 https://aws.amazon.com/ec2/ “” 的同级网址。
      + 仅限主机：将爬取限制为属于同一主机的网页。例如，如果种子 URL https://aws.amazon.com/bedrock/ 为 “”，则还会抓取带有 “https://aws.amazon.com” 的网页，比如 “https://aws.amazon.com/ec2”。
      + 子域名：包括与种子 URL 具有相同主域名的任何网页的爬取。例如，如果种子网址为 “https://aws.amazon.com/bedrock/”，则任何包含 “amazon.com”（子域名）的网页都将被抓取，例如 “”。https://www.amazon.com
**注意**  
确保您没有爬取可能过多的网页。不建议在没有筛选条件或范围限制的情况下爬取大型网站，例如 wikipedia.org。爬取大型网站需要很长时间。  
如果文件类型没有排除模式，则无论范围大小都会爬取[支持的文件类型](https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-ds.html)。

   1. 输入**爬取速度上限**。每台主机每分钟推送 1 到 300 个 URL。较高的爬取速度会增加负载，但耗时较短。

   1. 输入 1 到 25000 之间的**数据来源同步的最大页数**。限制从您的源 URL 中爬取的最大网页数量。如果网页超过此数量，则数据来源同步将失败，并且不会摄取任何网页。

   1. 对于 **URL Regex** 模式（可选），您可以通过在框中输入正则表达式模式来添加**包含模式**或**排除模式**。通过选择**添加新模式**，您最多可以添加 25 种包含和 25 种排除筛选模式。包含和排除模式将根据您的范围进行爬取。如果存在冲突，则优先使用排除模式。

1. （可选）在**内容解析和分块**部分，您可以自定义如何对数据进行解析和分块。要了解有关这些定制设置的更多信息，请参阅以下资源：
   + 有关解析选项的更多信息，请参阅[数据来源的解析选项](kb-advanced-parsing.md)。
   + 有关分块策略的更多信息，请参阅[知识库的内容分块是如何运作的](kb-chunking.md)。
**警告**  
连接到数据来源后，就无法更改分块策略。
   + 有关如何自定义数据分块和使用 Lambda 函数处理元数据的详细信息，请参阅[使用自定义转换 Lambda 函数定义数据的摄取方式](kb-custom-transformation.md)。

1. 继续选择嵌入模型和向量存储。要查看剩余步骤，请在连接数据来源后返回[在 Amazon Bedrock 知识库中通过连接到数据来源创建知识库](knowledge-base-create.md)，然后继续执行该步骤。

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

要使用将知识库连接到数据源 WebCrawler，请使用[适用于 Amazon Bedrock 的代理构建时终端节点](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)发送[CreateDataSource](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateDataSource.html)请求，`WEB`在的`type`字段中指定并包含该[DataSourceConfiguration](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_DataSourceConfiguration.html)字段。`webConfiguration`以下是您的 Amazon Bedrock 知识库的 Web 爬网程序配置示例。

```
{
    "webConfiguration": {
        "sourceConfiguration": {
            "urlConfiguration": {
                "seedUrls": [{
                    "url": "https://www.examplesite.com"
                }]
            }
        },
        "crawlerConfiguration": {
            "crawlerLimits": {
                "rateLimit": 50,
                "maxPages": 100
            },
            "scope": "HOST_ONLY",
            "inclusionFilters": [
                "https://www\.examplesite\.com/.*\.html"
            ],
            "exclusionFilters": [
                "https://www\.examplesite\.com/contact-us\.html"
            ],
            "userAgent": "CustomUserAgent"
        }
    },
    "type": "WEB"
}
```

要了解可以通过添加可选的 `vectorIngestionConfiguration` 字段来应用于摄取的定制设置，请参阅[自定义数据来源的摄取](kb-data-source-customize-ingestion.md)。

------