View a markdown version of this page

网络爬虫集成 - Amazon Quick

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

网络爬虫集成

 适用于:企业版 

借助 Amazon Quick 中的 Web Crawler 集成,您可以通过抓取和索引网页来利用网站内容创建知识库。此集成支持具有不同身份验证选项的数据摄取功能。

网络爬虫功能

您可以询问有关存储在网站和网页上的内容的问题。例如,您可以在多个网页上搜索文档网站、知识库或特定信息。

通过这种集成,无论位置或类型如何,您都可以访问和理解 Web 内容。您还可以获得上下文详细信息,例如发布日期、修改历史记录和页面所有权,从而更有效地发现信息。

注意

Web Crawler 集成仅支持数据提取。它不提供管理网站或 Web 服务的操作功能。

先决条件

在设置 Web Crawler 集成之前,请确保您具备以下条件:

  • 要抓取和编入索引的网站网址。

  • 您需要一个企业版的亚马逊 Quick 账户。

  • 不在防火墙后面,不需要特殊的浏览器插件即可连接的网站。

准备网站访问和身份验证

在 Amazon Quick 中设置集成之前,请准备好您的网站访问凭证。Web Crawler 集成支持不同的身份验证方法:

不使用身份验证

用于抓取不需要身份验证的网站。

基本身份验证

安全网站的标准 HTTP 基本身份验证。当您访问受保护的站点时,您的浏览器会显示一个对话框,要求您提供凭据。

必需的证书:

  • 登录页面 URL -登录页面的 URL

  • 用户名 -基本身份验证用户名

  • 密码 -基本身份验证密码

表单身份验证

适用于使用基于 HTML 表单的登录页面的网站。您可以指定 XPath 表达式来识别登录页面上的表单字段。

XPath(XML 路径语言)是一种查询语言,用于浏览 HTML 或 XML 文档中的元素。要查找网页元素的 XPath,请在浏览器中右键单击该元素,然后选择 “检查”。在开发者工具中,右键单击突出显示的 HTML 代码,选择 “复制”,然后选择 “复制 XPath”。

必填信息:

  • 登录页面 URL -登录表单的 URL(例如,https://example.com/login

  • 用户名 -登录用户名

  • 密码 -登录密码

  • 用户名字段 XPath -用户名输入字段的 XPath(例如,)//input[@id='username']

  • (可选)用户名按钮 XPath — 用户名的 XPath 按钮字段(例如,)//input[@id='username_button']

  • 密码字段 XPath -密码输入字段的 XPath(例如,)//input[@id='password']

  • 密码按钮 XPath -XPath 到密码按钮(例如,)//button[@type='password']

SAML 身份验证

适用于使用 SAML-based 单点登录 (SSO) 身份验证的网站。

SAML(安全断言标记语言)身份验证是一种支持 SSO 的联合身份标准。您可以通过集中式身份提供商(例如Microsoft Azure AD或Okta)进行身份验证,而不是直接在每个应用程序中输入证书。身份提供商将安全令牌传回应用程序以授予访问权限。

必填信息:

  • 登录页面 URL -SAML 登录页面的 URL

  • 用户名 -SAML 用户名

  • 密码 -SAML 密码

  • 用户名字段 XPath -用户名输入字段的 XPath(例如,)//input[@id='username']

  • (可选)用户名按钮 XPath — 用户名的 XPath 按钮字段(例如,)//input[@id='username_button']

  • 密码字段 XPath -密码输入字段的 XPath(例如,)//input[@id='password']

  • 密码按钮 XPath -XPath 到密码按钮(例如,)//button[@type='password']

XPath 配置示例

使用以下 XPath 示例来配置表单和 SAML 身份验证:

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 集成

准备好您的网站访问要求后,在 Amazon Quick 中创建网络爬虫集成。

  1. 在亚马逊 Quick 控制台中,选择知识

  2. 找到 Web Crawler 并选择 “添加” (+) 图标。

  3. 选择 “从 Web 爬虫访问数据”。Web Crawler 集成仅支持数据访问——操作执行不适用于网络爬行。

  4. 配置集成详细信息和身份验证方法,然后根据需要创建知识库。

    1. 为您的网络爬虫集成选择身份验证类型。

    2. 根据您选择的身份验证方法输入所需的详细信息。

    3. (可选)选择 VPC 连接来抓取私有网络中托管的站点。必须先在管理员设置中配置 VPC 连接,然后才能在此处进行选择。有关更多信息,请参阅 设置 VPC 以与 Amazon Quick 配合使用

      注意

      创建集成后,您无法更改 VPC 连接。要使用不同的 VPC 连接,请创建新的集成。

    4. 选择创建并继续

    5. 输入知识库的名称和描述。

    6. 添加要抓取的内容网址。

    7. 选择创建

选择 “创建” 后,数据同步将自动开始。

配置爬行

您可以配置要抓取哪些网站和页面以及如何筛选内容。

配置 URL 和内容源

配置要抓取的网站和页面:

直接网址

指定要抓取的单个 URL:

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

限制:每个数据集最多 10 个 URL

内容过滤器和抓取设置

抓取范围设置

要查看这些设置,必须先设置知识库,然后检查高级设置选项。

爬行深度
  • 范围:0-10(默认值:1)

  • 0 = 仅抓取指定网址

  • 1 = 包含深度为一层的链接页面

  • 更高的值会跟踪链接更深入地进入网站

每页最大链接数
  • 默认值:100

  • 最大值:1000

  • 控制每个页面上要关注的链接数量

等待时间
  • 默认:1

  • 网页进入就绪状态后,网络爬虫等待每个页面的时间(以秒为单位)。对于包含在主模板之后加载的动态 JavaScript 内容的页面,请增加此值。

管理知识库

设置 Web Crawler 集成后,您可以根据抓取的网站内容创建和管理知识库。

编辑现有知识库

您可以修改现有的 Web Crawler 知识库:

  1. 在 Amazon Quick 控制台中,选择知识库

  2. 从列表中选择您的 Web 爬虫知识库。

  3. 选择 “操作” 下的三点图标,然后选择 “编辑知识库”。

  4. 根据需要更新您的配置设置,然后选择保存

附件和文件搜寻

控制系统是否处理从网页链接的文件和附件:

  • 启用文件附件搜寻 -选择此选项可对网页上的文件和附件(例如 PDF、文档和媒体文件)进行爬网和索引。

爬网行为和同步配置

您的 Web Crawler 集成遵循以下抓取方法:

  • 增量同步模型:首次同步执行完全爬行。后续同步仅捕获更改。

  • 自动重试:失败请求的 Built-in 重试逻辑。

  • 重复处理:自动检测和删除网址。

  • 爬虫识别:使用请求标头amazon-Quick-on-behalf-of-<UUID>中的用户代理字符串来标识自己。你可以在robots.txt文件中将这个用户代理作为目标,专门允许或禁止爬虫。有关更多信息,请参阅 Robots.txt Compliance

网站地图发现

Web Crawler 通过将常见的站点地图路径附加到您的种子网址来自动检查站点地图。您无需单独提供站点地图网址。检查了以下路径:

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.xmlhttps://example.com/docs/sitemap_index.xml、等。

注意

网络爬虫不遵循递归的站点地图索引引用。仅使用已发现的站点地图中直接列出的网址。robots.txt 中的站点地图指令不用于站点地图发现。

Robots.txt Compliance

Web Crawler 遵守 robots.txt 协议,尊重用户代理和允许或禁止指令。使用这些指令来控制爬虫如何访问您的网站。

robots.txt 检查的工作原理
  • Host-level 检查:网络爬虫在主机级别读取 robots.txt 文件(例如。com/robots.txt)。

  • 多主机支持:对于具有多个主机的域名,Web Crawler 会分别遵守每台主机的机器人规则。

  • 备用行为:如果 Web Crawler 由于阻塞、解析错误或超时而无法获取 robots.txt,则其行为就像 robots.txt 不存在一样。在这种情况下,爬虫会继续抓取该站点。

支持的 robots.txt 字段

Web Crawler 可以识别以下 robots.txt 字段(字段名不区分大小写,值区分大小写):

user-agent

确定规则适用于哪个搜寻器。

allow

可以抓取的 URL 路径。

disallow

可能无法抓取的 URL 路径。

crawl-delay

两次向您的网站发出的请求之间的等待时间(以秒为单位)。

元标签支持

Web Crawler 支持页面级机器人元标记,您可以使用它们来控制数据的使用方式。您可以通过在 HTML 页面或 HTTP 标头中添加元标记来指定页面级设置。

支持的元标记
noindex

不要索引该页面。如果您未指定此规则,则该页面可能已编入索引并有资格显示在体验中。

nofollow

不要点击此页面上的链接。如果您未指定此规则,Web Crawler 可能会使用页面上的链接来发现这些链接的页面。

你可以使用逗号组合多个值(例如,“noindex,nofollow”)。

注意

要检测元标记,网络爬虫必须访问您的页面。不要使用 robots.txt 屏蔽你的页面,因为这样可以防止页面被重新抓取。

问题排查

使用本节来解决 Web Crawler 集成的常见问题。

身份验证失败次数

症状:

  • “无法验证” 错误消息

  • 401/403 HTTP 响应

  • 登录页面重定向循环

  • 会话超时错误

解决步骤:

  1. 验证是否可以从设置 Amazon Quick 实例的 AWS 区域访问该站点。

  2. 确认您的凭证正确无误且未过期。

  3. 检查身份验证端点的可用性和可访问性。

  4. 通过在浏览器开发者工具中测试 XPath 配置来验证 XPath 配置。

  5. 查看浏览器网络日志以了解身份验证流程。

  6. 确保登录页面 URL 正确且可访问。

  7. 使用相同的凭据手动测试身份验证。

访问和连接问题

症状:

  • 连接超时和网络错误

  • 网络无法访问错误

  • DNS 解析失败

解决步骤:

  1. 验证与目标网站的网络连接。

  2. 验证网站的可访问性:

    • 检查目标域的 DNS 解析。

    • 验证 SSL/TLS 配置和证书。

    • 如果可能,测试来自不同网络的访问权限。

DNS 解析

网络爬虫使用 DNS 将网站主机名(例如www.example.com)解析为 IP 地址。默认情况下,它使用公有 DNS 解析。

在 VPC 内搜索站点时,您可能需要配置私有 DNS 服务器,以便爬虫可以解析内部站点的主机名。根据您的 VPC 配置选择以下选项之一:

  1. 使用 VPC-provided DNS 服务器 — 如果您的 VPC 同时启用了 DNS 主机名 DNS 解析,则可以使用默认 VPC DNS 解析器(通常为 10.0.0.2,或者更常见的是 VPC CIDR 基础+2)。有关更多信息,请参阅 VPC

  2. 使用自定义 DNS 服务器 -如果您的 VPC 使用自定义 DNS 解析器,请提供贵组织内部 DNS 服务器的 IP 地址。请与您的网络管理员合作获取此地址。

如果您未配置 DNS 服务器,则爬虫仅解析公开注册的主机名。

JavaScript-dependent 导航

症状:

  • 仅对种子网址进行了索引,未发现其他页面

  • 抓取成功完成,但仅返回一个文档

解决步骤:

  1. Web Crawler 执行 JavaScript 和呈现页面内容,但不模拟用户交互,例如点击、滚动或悬停操作。如果您的网站通过用户交互(例如,点击处理程序、无限滚动或动态菜单)加载导航链接,则爬虫无法发现这些链接。

  2. 在浏览器开发者工具中检查您的页面,以检查导航链接是否使用标准<a href="...">元素。如果链接改为通过 JavaScript 事件处理程序进行连接,则爬虫将不会跟踪它们。

  3. 如果您的网站提供站点地图,Web Crawler 会自动检查您的种子网址上是否有常见的站点地图路径。确保您的站点地图在标准位置可用(例如/sitemap.xml),这样爬虫就可以在不依赖页内链接提取的情况下发现其他网址。

  4. 或者,将所有目标页面的网址直接作为种子网址提供。

  5. 如果内容可以导出为 HTML、PDF 或文本文件,请考虑改用 Amazon S3 连接器作为数据源。

抓取和内容问题

症状:

  • 内容缺失或不完整

  • 抓取不完整或提前终止

  • 速率限制错误(429 个响应)

  • 内容未正确编入索引

解决步骤:

  1. 查看 robots.txt 限制:

    • 检查 robots.txt 文件中的爬网限制。

    • 验证是否允许搜寻器访问目标路径。

    • 确保 robots.txt 合规性不会屏蔽内容。

  2. 检查速率限制和节流:

    • 监控响应标头以获取速率限制信息。

    • 实现适当的抓取延迟。

  3. 验证 URL 模式和过滤器:

    • 测试正则表达式模式的准确性。

    • 检查 URL 的格式和结构。

    • 验证 include/exclude 模式逻辑。

  4. 查看内容限制:

    • 检查页面上是否有 noindex 元标记。

    • 验证内容类型支持。

    • 确保内容大小在限制范围内。

  5. 更新等待时间,以便在爬虫开始抓取之前内容加载到页面上。

已知限制条件

Web Crawler 集成有以下限制:

  • 网址限制:每个数据集最多 10 个种子 URL。您不能在种子网址字段中提供站点地图网址。

  • 爬行深度:最大爬行深度为 10 级

  • 安全要求:Web 代理配置需要 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 证书的站点无法连接。

  • 仅限 IPv4:仅支持 IPv4 地址。无法抓取仅通过 IPv6 访问的站点。