本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
网络爬虫集成
借助 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 集成。
-
在 Amazon Quick 控制台中,选择集成。
-
从集成选项中选择 Web Crawler,然后单击 “添加” 按钮(加上 “+” 按钮)。
-
选择 “从 Web Crawler 访问数据”。Web Crawler 集成仅支持数据访问——动作执行不适用于网络抓取。
-
配置集成详细信息和身份验证方法,然后根据需要创建知识库。
-
为您的网络爬虫集成选择身份验证类型。
-
根据您选择的身份验证方法输入所需的详细信息。
-
(可选)选择 VPC 连接来抓取您的私有网络中托管的网站。必须先在管理员设置中配置 VPC 连接,然后才能在此处进行选择。有关更多信息,请参阅 设置 VPC 以与 Amazon Quick 配合使用。
注意
创建集成后,您无法更改 VPC 连接。要使用不同的 VPC 连接,请创建新的集成。
-
选择创建并继续。
-
输入知识库的名称和描述。
-
添加您 URLs 要抓取的内容。
-
选择创建。
-
选择 “创建” 后,数据同步将自动开始。
配置爬行
您可以配置要抓取哪些网站和页面以及如何筛选内容。
配置 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 知识库:
-
在 Amazon Quick 控制台中,选择知识库。
-
从列表中选择您的 Web Crawler 知识库。
-
选择 “操作” 下的三点图标,然后选择 “编辑知识库”。
-
根据需要更新您的配置设置,然后选择 “保存”。
附件和文件搜寻
控制系统是否处理从网页链接的文件和附件:
-
启用文件附件抓取-选择此选项可对网页上的文件和附件(例如 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 响应
登录页面重定向循环
会话超时错误
解决步骤:
确认可以从设置 Amazon Quick 实例的 AWS 区域访问该站点。
验证您的凭证是否正确且未过期。
检查身份验证端点的可用性和可访问性。
通过在浏览器开发者工具中测试 XPath 配置来验证配置。
查看浏览器网络日志以了解身份验证流程。
确保登录页面 URL 正确且可访问。
使用相同的凭据手动测试身份验证。
访问和连接问题
症状:
连接超时和网络错误
网络无法访问错误
DNS 解析失败
解决步骤:
-
验证与目标网站的网络连接。
-
验证网站可访问性:
检查目标域的 DNS 解析。
验证 SSL/TLS 配置和证书。
如果可能,请测试来自不同网络的访问权限。
DNS 解析
Web Crawler 使用 DNS 将网站主机名(例如www.example.com)解析为 IP 地址。默认情况下,它使用公有 DNS 解析。
在 VPC 内抓取网站时,您可能需要配置私有 DNS 服务器,以便爬网程序可以解析内部站点的主机名。根据您的 VPC 配置选择以下选项之一:
-
使用 VPC 提供的 DNS 服务器 — 如果您的 VPC 同时启用了 D NS 主机名和 DNS 解析,则可以使用默认 VPC DNS 解析器(通常为 10.0.0.2,或者更笼统地说 VPC CIDR base+2)。有关更多信息,请参阅 VPC。
-
使用自定义 DNS 服务器-如果您的 VPC 使用自定义 DNS 解析器,请提供您组织内部 DNS 服务器的 IP 地址。请与您的网络管理员合作获取此地址。
如果您未配置 DNS 服务器,则抓取程序仅解析公开注册的主机名。
JavaScript-依赖导航
症状:
仅为种子网址编制索引,未发现其他页面
Crawl 成功完成但只返回一个文档
解决步骤:
-
Web Crawler 执行 JavaScript 和呈现页面内容,但不模拟用户交互,例如点击、滚动或悬停操作。如果您的网站通过用户交互(例如,点击处理程序、无限滚动或动态菜单)加载导航链接,则抓取工具无法发现这些链接。
-
在浏览器开发者工具中检查您的页面,检查导航链接是否使用标准
<a href="...">元素。如果链接改为通过 JavaScript 事件处理程序进行连接,则爬虫将不会跟踪它们。 -
如果您的网站提供了站点地图,Web Crawler 会自动检查您的种子 URLs上是否有常见的站点地图路径。确保您的站点地图在标准位置(例如
/sitemap.xml)可用,这样抓取工具就可以在 URLs 不依赖页面内链接提取的情况下发现更多内容。 -
或者, URLs 直接提供所有目标页面作为种子 URLs。
-
如果内容可以导出为 HTML、PDF 或文本文件,请考虑改用 Amazon S3 连接器作为数据源。
抓取和内容问题
症状:
内容缺失或不完整
抓取不完整或提前终止
速率限制错误(429 个响应)
内容索引不正确
解决步骤:
-
查看 robots.txt 限制:
查看 robots.txt 文件以了解抓取限制。
验证是否允许爬网程序访问目标路径。
确保 robots.txt 合规性不会屏蔽内容。
-
检查速率限制和限制:
监控响应标头以获取速率限制信息。
实施适当的抓取延迟。
-
验证 URL 模式和过滤器:
测试正则表达式模式的准确性。
检查 URL 格式和结构。
验证 include/exclude 模式逻辑。
-
查看内容限制:
检查页面上是否有 noindex 元标记。
验证内容类型支持。
确保内容大小在限制范围内。
-
更新等待时间,以便在抓取工具开始抓取之前将内容加载到页面上。
已知限制条件
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 无法抓取只能通过以下方式访问的网站。