网络爬虫集成 - Amazon Quick

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

网络爬虫集成

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

网络爬虫功能

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

该集成可帮助用户访问和理解 Web 内容,无论其位置或类型如何。它提供上下文详细信息,例如发布日期、修改历史记录和页面所有权,以便更有效地发现信息。

注意

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

先决条件

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

  • URLs 要抓取和索引的网站。

  • Amazon 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 的单点登录 (SSO) 身份验证的网站。

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

必填信息:

  • 登录页面网址-SAML 登录页面的网址

  • 用户名-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 中创建 Web Crawler 集成。

  1. 在 Amazon Quick 控制台中,选择集成。

  2. 从集成选项中选择 Web Crawler,然后单击 “添加” 按钮(加上 “+” 按钮)。

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

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

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

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

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

      注意

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

    4. 选择创建并继续

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

    6. 添加您 URLs 要抓取的内容。

    7. 选择创建

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

配置爬行

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

配置 URLs 和内容来源

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

直接 URLs

指定要抓取 URLs 的个人:

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

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

内容过滤器和抓取设置

抓取范围设置

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

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

  • 0 = 仅指定抓取 URLs

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

  • 值越高,链接会更深入地进入网站

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

  • 最大值:1000

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

等待时间
  • 默认:1

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

管理知识库

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

编辑现有知识库

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

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

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

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

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

附件和文件搜寻

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

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

抓取行为和同步配置

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

  • 增量同步模型:第一次同步执行完全抓取。后续同步仅捕获更改。

  • 自动重试:针对失败请求的内置重试逻辑。

  • 重复处理:自动检测和删除重复数据。 URLs

  • 爬虫识别:在请求标头中使用用户代理字符串 “aws-quick-on-behalf-of-<UUID>” 来标识自己。

网站地图发现

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

注意

Web Crawler 不遵循递归站点地图索引引用。仅使用已发现的站点地图中直接 URLs 列出的内容。robots.txt 中的站点地图指令不用于网站地图发现。

Robots.txt 合规性

Web Crawler 尊重 robots.txt 协议并尊重用户代理和指令。 allow/disallow 这使您能够控制抓取工具访问您的网站的方式。

robots.txt 检查的工作原理
  • 主机级检查:Web Crawler 在主机级别读取 robots.txt 文件(例如,example.com/robots.txt)

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

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

支持的 robots.txt 字段

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

user-agent

标识规则适用于哪个 Crawler。

allow

可以被抓取的 URL 路径。

disallow

可能无法抓取的 URL 路径。

crawl-delay

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

元标签支持

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

支持的元标记
noindex

不要将页面编入索引。如果您未指定此规则,则该页面可能会被编入索引并有资格出现在体验中。

nofollow

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

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

注意

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

问题排查

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

身份验证失败次数

症状:

  • “无法验证” 错误消息

  • 401/403 HTTP 响应

  • 登录页面重定向循环

  • 会话超时错误

解决步骤:

  1. 确认可以从设置 Amazon Quick 实例的 AWS 区域访问该站点。

  2. 验证您的凭证是否正确且未过期。

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

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

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

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

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

访问和连接问题

症状:

  • 连接超时和网络错误

  • 网络无法访问错误

  • DNS 解析失败

解决步骤:

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

  2. 验证网站可访问性:

    • 检查目标域的 DNS 解析。

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

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

DNS 解析

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

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

  1. 使用 VPC 提供的 DNS 服务器 — 如果您的 VPC 同时启用了 D NS 主机名和 DNS 解析,则可以使用默认 VPC DNS 解析器(通常为 10.0.0.2,或者更笼统地说 VPC CIDR base+2)。有关更多信息,请参阅 VPC

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

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

JavaScript-依赖导航

症状:

  • 仅为种子网址编制索引,未发现其他页面

  • Crawl 成功完成但只返回一个文档

解决步骤:

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

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

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

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

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

抓取和内容问题

症状:

  • 内容缺失或不完整

  • 抓取不完整或提前终止

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

  • 内容索引不正确

解决步骤:

  1. 查看 robots.txt 限制:

    • 查看 robots.txt 文件以了解抓取限制。

    • 验证是否允许爬网程序访问目标路径。

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

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

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

    • 实施适当的抓取延迟。

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

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

    • 检查 URL 格式和结构。

    • 验证 include/exclude 模式逻辑。

  4. 查看内容限制:

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

    • 验证内容类型支持。

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

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

已知限制条件

Web Crawler 集成有以下限制:

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

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

  • 安全要求:Web 代理服务器配置需要 HTTPS

使用具有 VPC 连接的 Web 爬网程序时,存在以下限制:

  • 不支持 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 无法抓取只能通过以下方式访问的网站。