为 Amazon Bedrock 知识库爬取网页 - Amazon Bedrock

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

为 Amazon Bedrock 知识库爬取网页

Amazon Bedrock 提供的 Web Crawler 可以连接到URLs你在 Amazon Bedrock 知识库中选择使用并进行爬网。您可以根据所选URLs页面的设置范围或限制来抓取网站页面。您可以使用适用于 Amazon Bedrock 的AWS 管理控制台或 CreateDataSourceAPI(参见 Amazon Bedrock 支持SDKs和)来抓取网站页面。 AWS CLI

注意

当选择要爬取的网站时,您必须遵守 Amazon 可接受使用政策以及所有其他 Amazon 条款。请记住,您只能使用 Web Crawler 索引自己的网页,或者您有权抓取且必须遵守 robots.txt 配置的网页。

根据 9309,Web Crawler 尊重 robots.txt RFC

可以爬取的网页内容项目数量有限制,每个内容项目的 MB 数量是有限的。请参阅 Quotas for knowledge bases

支持的特征

Web Crawler 从种子开始连接和抓取HTML页面URL,遍历同一顶级主域和路径下的所有子链接。如果任何HTML页面引用了支持的文档,Web Crawler 将获取这些文档,无论它们是否位于同一个顶级主域中。您可以通过更改爬网配置来修改爬取行为。请参阅 连接配置

您可以执行以下操作:

  • 选择URLs要抓取的多个来源,并将范围设置为仅抓取主机或同时包括子域名。URLs

  • 抓取来源URLs中包含的静态或动态网页。

  • 指定自定义 User Agent 后缀,为自己的爬虫设置规则。

  • 包含或排除某些URLs与过滤器模式匹配的内容。

  • 遵守标准 robots.txt 指令,例如 Allow 和 Disallow。

  • 将范围限制URLs为抓取,也可以选择排除与过滤器模式URLs匹配的内容。

  • 限制抓取速度URLs和要抓取的最大页面数。

  • 在 Amazon 中查看已抓取URLs的状态 CloudWatch

先决条件

要使用 Web 爬网程序,请确保您:

  • 检查您是否有权抓取您的来源URLs。

  • 检查与您的来源对应的 robots.txt 路径URLs是否会URLs阻止其被抓取。Web 爬网程序遵守 robots.txt 标准:如果未找到该网站的 robots.txt,则默认为 disallow。根据 RFC9 309,Web Crawler 尊重 robots.txt。您也可以指定自定义 User Agent 标头后缀,为自己的爬虫设置规则。有关更多信息,请参阅本页连接配置说明中的 Web Crawler URL 访问权限。

  • 启用 CloudWatch 日志传送并按照 Web Crawler 日志的示例,查看摄取 Web 内容的数据提取作业的状态,以及是否无法检索某些内容。URLs

注意

当选择要爬取的网站时,您必须遵守 Amazon 可接受使用政策以及所有其他 Amazon 条款。请记住,您必须仅使用 Web 爬网程序为您自己的网页或您有权编制索引的网页来爬取。

连接配置

有关抓取同步范围URLs、包含/排除过滤器、URL访问权限、增量同步及其工作原理的更多信息,请选择以下选项:

您可以根据每个页面与种URLURLs子的特定关系来限制抓取范围。URLs为了更快地抓取,您可以限制URLs使用相同的主机和种子URL初始URL路径的抓取。要获得更广泛的抓取,您可以选择URLs使用同一台主机或在种子的任何子域内进行抓取。URL

可从以下选项中进行选择。

  • 默认:将抓取限制为属于同一主机和具有相同初始URL路径的网页。例如,如果种子URL为 “https://aws.amazon.com/bedrock/”,则只有此路径和从该路径延伸的网页才会被抓取,例如 “https://aws.amazon.com/bedrock/agents/”。例如,URLs像 “https://aws.amazon.com/ec2/” 这样的兄弟姐妹不会被抓取。

  • 仅限主机:将爬取限制为属于同一主机的网页。例如,如果URL种子https://aws.amazon.com/bedrock/为 “”,则还会抓取带有 “https://aws.amazon.com” 的网页,例如 “https://aws.amazon.com/ec2”。

  • 子域名:包括抓取与种子具有相同主域名的任何网页。URL例如,如果种子URL为 “https://aws.amazon.com/bedrock/”,则任何包含 “amazon.com”(子域名)的网页都将被抓取,比如 “”。https://www.amazon.com

注意

确保您没有爬取可能过多的网页。不建议在没有筛选条件或范围限制的情况下爬取大型网站,例如 wikipedia.org。爬取大型网站需要很长时间。

如果文件类型没有排除模式,则无论范围大小都会爬取支持的文件类型

Web Crawler 支持静态和动态网站。

您还可以限制爬行速度URLs以控制爬行速度的限制。您可以设置每台主机每分钟的最URLs大搜索次数。此外,您还可以设置要抓取的网页总数的最大数量(最多 25,000)。请注意,如果来自您的来源的网页总数URLs超过您设置的最大值,则您的数据源同步/摄取任务将失败。

您可以根据自己的范围包括或排除某些URLs内容。如果文件类型没有排除模式,则无论范围大小都会爬取支持的文件类型。如果您指定了包含和排除过滤器,并且两者都匹配 aURL,则排除过滤器优先,并且不会抓取网页内容。

重要

有问题的正则表达式模式筛选条件会导致灾难性的回溯和瞻前顾后,因此会被拒绝。

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

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

当选择要爬取的网站时,您必须遵守 Amazon 可接受使用政策以及所有其他 Amazon 条款。请记住,您必须仅使用 Web 爬网程序为您自己的网页或您有权编制索引的网页来爬取。

根据 9309,Web Crawler 尊重 robots.txt RFC

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

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

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

Web Crawler 每次运行时,都会检索所有URLs可从源端访问且与范围URLs和过滤器相匹配的内容。对于首次同步所有内容后的增量同步,Amazon Bedrock 会使用新内容和修改过的内容更新知识库,并删除不再存在的旧内容。有时,爬网程序可能无法分辨网站内容是否已被删除;在这种情况下,它会偏向于将旧内容保留在知识库中。

要将您的数据源与知识库同步,请在控制台中使用StartIngestionJobAPI或选择您的知识库,然后在数据源概述部分中选择同步

重要

您从数据来源同步的所有数据都可供有检索数据的 bedrock:Retrieve 权限的任何人使用。这也可以包括任何具有受控数据来源权限的数据。有关更多信息,请参阅知识库权限

Console
将 Web Crawler 数据源连接到您的知识库
  1. 按照中的步骤操作,在 Amazon Bedrock 知识库中创建知识库然后选择 Web Crawler 作为数据源。

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

  3. 提供URLs您要抓取URLs的来源。URLs通过选择 “添加来源”,您最多可以再添加 9 个URLs。提供来源URL即表示您确认自己有权抓取其域名。

  4. 高级设置部分,您可以选择配置以下内容:

    • KMS用于瞬态数据存储的密钥。— 您可以加密瞬态数据,同时使用默认密钥 AWS 托管式密钥 或您自己的KMS密钥将数据转换为嵌入式数据。有关更多信息,请参阅 加密数据提取期间的临时数据存储

    • 数据删除政策-您可以删除默认存储在矢量存储中的数据源的矢量嵌入,也可以选择保留矢量存储数据。

  5. (可选)为 b edrock UUID- 提供用户代理后缀,用于在爬虫或机器人访问 Web 服务器时对其进行识别。

  6. 在 “同步范围” 部分配置以下内容:

    1. 选择一个网站域名范围来抓取您的来源:URLs

      • 默认:将抓取限制为属于同一主机和具有相同初始URL路径的网页。例如,如果种子URL为 “https://aws.amazon.com/bedrock/”,则只有此路径和从该路径延伸的网页才会被抓取,例如 “https://aws.amazon.com/bedrock/agents/”。例如,URLs像 “https://aws.amazon.com/ec2/” 这样的兄弟姐妹不会被抓取。

      • 仅限主机:将爬取限制为属于同一主机的网页。例如,如果URL种子https://aws.amazon.com/bedrock/为 “”,则还会抓取带有 “https://aws.amazon.com” 的网页,例如 “https://aws.amazon.com/ec2”。

      • 子域名:包括抓取与种子具有相同主域名的任何网页。URL例如,如果种子URL为 “https://aws.amazon.com/bedrock/”,则任何包含 “amazon.com”(子域名)的网页都将被抓取,比如 “”。https://www.amazon.com

      注意

      确保您没有爬取可能过多的网页。不建议在没有筛选条件或范围限制的情况下爬取大型网站,例如 wikipedia.org。爬取大型网站需要很长时间。

      如果文件类型没有排除模式,则无论范围大小都会爬取支持的文件类型

    2. 输入爬取速度上限。URLs每台主机每分钟摄取 1 URLs 到 300 个。较高的爬取速度会增加负载,但耗时较短。

    3. 输入 1 到 25000 之间的数据源同步的最大页数。限制从您的来源URLs抓取的最大网页数量。如果网页超过此数字,则数据源同步将失败,并且不会提取任何网页。

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

  7. (可选)在内容解析和分块部分,您可以自定义如何解析和分块数据。要了解有关这些自定义项的更多信息,请参阅以下资源:

  8. 继续选择嵌入模型和矢量存储。要查看其余步骤,请在连接数据源后返回在 Amazon Bedrock 知识库中创建知识库并继续执行该步骤。

API

要使用将知识库连接到数据源 WebCrawler,请使用适用于 Amazon Bedrock 的代理构建时终端节点发送CreateDataSource请求,WEB在的type字段中指定并包含该DataSourceConfiguration字段。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字段可以应用于摄取的自定义设置,请参阅。自定义数据源的摄取