Alexa 抓取 API 指南:提取答案、引用和产品
Expert in Web Scraping Technologies
TL;DR:
- Alexa Scraper将提示转换为结构化答案数据。
scraper.alexa演员返回Markdown和纯文本答案,以及参考文献、来源、建议和条件产品记录。 - 请求有两个必需的演员输入。 向Alexa演员发送自然语言的
prompt和country代码。 - 当前记录的端点是
/api/v2/scraper/request。 使用x-api-token头进行身份验证,并通过HTTP POST发送JSON。 - 产品字段设计上可以为null。 当Alexa答案没有产品上下文时,
products数组可以为空。 - 参考文献和来源应与答案保持关联。 保留这些子记录与捕获内容一起有助于维护后续品牌、地理和产品分析的证据。
- 免费开始。 新的Scrapeless账户包括访问app.scrapeless.com的免费计划。
引言:Alexa答案需要稳定的数据接口
Alexa答案不仅仅包含一句话。它可以承载Markdown、纯文本、参考文献、源链接、建议的后续问题、对话标识符、处理指令和产品记录。复制可见的答案会失去许多结构。
Scrapeless Alexa Scraper通过scraper.alexa演员暴露响应。客户端发送提示和国家,演员返回可以存储的字段,而无需解析语音助手接口。这使得相同的请求结构在地理监控、答案质量审查、来源分析和产品可见性工作中都非常有用。
本指南使用当前的Alexa Scraper文档。它涵盖了端点、身份验证、请求参数、响应字段、cURL请求、Python客户端以及结构化输出的存储模式。
使用Alexa Scraper可以做什么
Alexa Scraper支持需要将答案及其周围证据记录在一个记录中的工作流程。
- 捕获答案文本。 存储
md_text作为渲染内容,存储raw_text作为纯文本处理。 - 检查引用。 从
references中读取参考 ID、标题和 URL。 - 映射源链接。 从
sources中存储源显示文本、URL、类型和片段URI。 - 发现后续提示。 收集Alexa在
suggestions中呈现的文本和消息值。 - 跟踪响应上下文。 保留完成状态、答案修订、对话请求ID、端点ID、片段计数和对话ID。
- 分析产品展示。 当适用产品数据时,读取产品标识符、引用链接、标题、图像、URL、价格、交付文本、详细信息和用途。
演员返回捕获的数据。提及率、来源浓度、答案一致性和产品出现率等指标是团队利用数据定义的下游计算。
为什么选择Scrapeless Alexa Scraper
Scrapeless Alexa Scraper提供了一种记录跨市场捕获Alexa响应的文档化演员接口。
实现价值来自响应的形状:
- 答案文本以Markdown和纯文本格式到达。
- 引用和源链接是单独的数组,而不是仅嵌入在散文中的链接。
- 建议的提示作为结构化记录返回。
- 产品信息以条件数组的形式提供。
- 国家是特定市场捕获的明确请求输入。
- 可以保留对话和答案标识符以供追踪。
Scrapeless LLM聊天抓取器是通用抓取API系列的一部分。通用抓取API产品页面是产品主页,当前计划细节在Scrapeless定价页面上列出。
先决条件
你需要:
- 从app.scrapeless.com获取Scrapeless账户和API密钥
- 用于示例的cURL
- 用于Python示例的Python和
requests包 - 你想要捕获的市场的支持国家代码
country输入使用简短的国家代码。ISO 3166国家代码标准解释了常见的alpha-2格式;使用Scrapeless支持的国家列表确认特定代码的产品可用性。
注意:以下经过身份验证的请求需要一个真实的Scrapeless API密钥和可访问的webhook。没有这些凭据,代码块可以进行语法检查,但无法生成实时的Alexa结果。
Alexa Scraper API的工作原理
Alexa Scraper请求是一个HTTP POST,它指定了参与者,提供了提示和国家,以及一个webhook目标。
当前的文档端点是:
https://api.scrapeless.com/api/v2/scraper/request
HTTP通过HTTP语义标准定义请求方法和头字段。在此请求中,Content-Type: application/json描述了主体格式,x-api-token承载Scrapeless API密钥。
请将该API密钥存放在秘密存储或受保护的环境变量中,而不是源代码中。OWASP秘密管理指南概述了存储、轮换和访问的实用控制。
请求参数
| 参数 | 类型 | 是否必填 | 描述 |
|---|---|---|---|
actor |
字符串 | 是 | 使用scraper.alexa |
input.prompt |
字符串 | 是 | 发给Alexa的自然语言提示 |
input.country |
字符串 | 是 | 国家或地区代码 |
webhook.url |
字符串 | 否 | 请求工作流的回调URL |
请将提示和国家保存在与返回答案相同的数据库记录中。这两个输入定义了观察,使后续比较可重复。
使用cURL快速捕获
在运行请求之前,请在shell中设置SCRAPELESS_API_KEY和SCRAPELESS_WEBHOOK_URL。
注意:该块是凭证保护的请求。它需要一个真实的Scrapeless API密钥和一个公共webhook URL。
bash
curl 'https://api.scrapeless.com/api/v2/scraper/request' \
--header 'Content-Type: application/json' \
--header "x-api-token: ${SCRAPELESS_API_KEY}" \
--data-binary @- <<JSON
{
"actor": "scraper.alexa",
"input": {
"prompt": "纽约的推荐景点",
"country": "US"
},
"webhook": {
"url": "${SCRAPELESS_WEBHOOK_URL}"
}
}
JSON
有效负载为JSON,其可互操作语法由RFC 8259定义。请保持字符串值用引号括起,并避免在提交的主体中添加注释。
响应字段
演员结果将字段分组为答案内容、标识符、指令、引用、来源、建议和产品。
| 分组 | 字段 |
|---|---|
| 答案 | user_text, md_text, raw_text, completed |
| 答案身份 | answer_fragment_uri, answer_revision, dialog_request_id, endpoint_id, fragment_count |
| 对话 | conversation.id |
| 指令 | name, namespace, message_id, dialog_request_id, fragment_count |
| 引用 | id, title, url |
| 来源 | text, url, type, fragment_uri |
| 建议 | text, message, type, fragment_uri |
| 产品 | product_id, citation_id, title, image_url, url, price, delivery, details, fragment_uri, purpose |
以下JSON是根据文档字段列表构建的示例形状。值仅为示例,而不是捕获的演员运行。
json
{
"user_text": "哪款咖啡机适合小厨房?",
"md_text": "一款紧凑型咖啡机应该平衡占地面积和容量。",
"raw_text": "一款紧凑型咖啡机应该平衡占地面积和容量。",
"completed": true,
"answer_revision": 1,
"conversation": {
"id": "illustrative-conversation-id"
},
"references": [
{
"id": "cite_example",
"title": "示例购买指南",
"url": "https://example.com/illustrative-buying-guide"
}
],
"sources": [
{
"text": "示例来源",
"url": "https://example.com/illustrative-buying-guide",
"type": "OpenURL",
"fragment_uri": "illustrative-source-fragment"
}
],
"suggestions": [
{
"text": "比较紧凑型型号",
"message": "比较紧凑型咖啡机",
"type": "TextMessage",
"fragment_uri": "illustrative-suggestion-fragment"
}
],
"products": []
}
空的产品数组是故意的。产品信息是有条件的,因此解析器必须接受空列表。
在免费计划上获取您的API密钥:app.scrapeless.com
在Python中集成Alexa Scraper
Python客户端可以提交文档请求并打印请求工作流响应。最终的Alexa演员结果通过配置的工作流交付,并应传递给请求后显示的归一化函数。
安装唯一的第三方依赖项。此设置步骤需要访问 Python 包索引。
bash
python -m pip install requests
注意:下面的请求块是一个需要凭证的示例。它需要
SCRAPELESS_API_KEY和SCRAPELESS_WEBHOOK_URL环境变量。
python
import os
import requests
API_URL = "https://api.scrapeless.com/api/v2/scraper/request"
api_key = os.environ["SCRAPELESS_API_KEY"]
webhook_url = os.environ["SCRAPELESS_WEBHOOK_URL"]
payload = {
"actor": "scraper.alexa",
"input": {
"prompt": "纽约建议的景点",
"country": "US",
},
"webhook": {
"url": webhook_url,
},
}
response = requests.post(
API_URL,
headers={
"Content-Type": "application/json",
"x-api-token": api_key,
},
json=payload,
timeout=60,
)
response.raise_for_status()
print(response.json())
将 API 密钥保存在环境变量中。请勿将其放入源控制、笔记本、截图或捕获的 webhook 有效负载中。
对 Alexa 输出进行规范化以便存储
一个规范化的 Alexa 记录在父级保留答案,并将重复的数组存储为子记录。
使用一个父级 captures 表,包含:
- 内部捕获 ID
- 提交的提示
- 提交的国家
user_text、md_text和raw_textcompleted和answer_revision- 对话和对话标识符
- 由您的系统生成的捕获时间戳
将 references、sources、suggestions、directives 和 products 存储在单独的表中,按捕获 ID 进行键控。这避免了为每个来源或产品重复完整答案。
源关系应保持明确且可查询。该角色已经通过引用 ID、源 URL 和片段 URI 曝露这些关系。请保留它们,而不是将其扁平化为非结构化的文本字段。
对于产品行,即使 citation_id 为 null 也要保留。当存在时,它可以将产品与文档引用关联。当缺失时,null 值准确记录了该字段没有返回直接引用链接。
如何避免常见的集成问题
当显式处理可为空字段、国家范围和响应证据时,Alexa Scraper 集成保持可预测性。
将条件数组视为空集合
当产品信息不适用时,products 数组可以为空。对于 references、sources、suggestions 和 directives,使用相同的防御模式:在转换层中将缺失或 null 的数组读作空集合,同时保留原始有效负载以供审核。
保留 Markdown 和纯文本
md_text 和 raw_text 支持不同的任务。Markdown 对于渲染和保留可见结构是有用的。纯文本更容易进行标记、比较和搜索。存储两者可以防止后续数据管道从一个格式重建另一个格式。
在每条记录中标记国家
在下游存储中不要依赖默认市场。将确切的提交国家与提示和结果一起保存。当捕获无法与请求上下文关联时,市场比较会失败。
在按域分组之前保留引用 ID
域级报告是有用的,但应从原始参考和源记录派生。在添加规范化域字段之前,保留引用 ID、标题、完整 URL、源类型和片段 URI。
将演员输出与派生分数分开
演员返回答案和上下文字段。提及率、引用率、源多样性、声明准确性和产品出现率是捕获后创建的分析。将派生分数存储在单独的表或命名空间中,以便审阅者可以区分 API 输出和团队的解释。
伴随阅读以获取答案引擎数据
Alexa Scraper 涉及一个 LLM 答案表面。Google AI 概述 Scraper API 指南 显示了一种与搜索主导答案体验相关的演员模式以及其自身的字段模型。
仅在字段真正对齐的情况下,在演员之间使用共享存储契约:提交的提示、国家、答案文本、源 URL、捕获 ID 和捕获时间。将特定于演员的字段保留在自己的表中,以便产品片段、建议消息和平台标识符不会消失到最低公分母模式中。
结论:保留答案及其证据
Alexa Scraper 集成具有较小的请求表面:演员、提示、国家、身份验证头和 webhook 工作流程。响应模型更广泛,因为它保留了答案、引用、源、建议、指令、对话上下文和条件产品。
开始时存储原始负载和标准化的父捕获。为重复记录添加子表,保留可为null的产品字段,并将衍生分析与参与者输出分开。该结构支持未来的品牌、地理、产品和市场用例,而无需重写收集层。
准备好与Alexa Scraper构建吗?
加入我们的社区以获取免费计划,并与正在构建LLM回答数据管道的开发者联络:Discord · Telegram。
在 app.scrapeless.com 注册,并使用一个提示、一个支持的国家以及一个您控制的Webhook端点测试该参与者。
常见问题解答
问:Alexa Scraper使用哪个端点?
Alexa Scraper在当前参与者文档中使用POST https://api.scrapeless.com/api/v2/scraper/request。请求使用scraper.alexa作为参与者值。
问:哪些Alexa Scraper输入是必需的?
该参与者需要在input对象中提供提示和国家代码。文档中的请求示例还包括请求工作流程的Webhook URL。
问:md_text和raw_text有什么区别?
md_text是Markdown格式的Alexa答案,而raw_text是纯文本答案。当管道需要准确渲染和文本分析时,两者都要存储。
问:Alexa Scraper总是返回引用吗?
Alexa Scraper公开了references和sources数组,但下游代码应该允许这些数组为空。引用的存在取决于返回的答案。
问:Alexa Scraper总是返回产品吗?
不一定。产品信息是有条件的,当不适用时,products数组可能为空。
问:可以在没有Python的情况下使用Alexa Scraper吗?
可以。任何能够发送经过身份验证的JSON POST并接收请求工作流程响应的客户端都可以使用该参与者。cURL示例足以用于直接集成测试。
问:API密钥应该如何存储?
将Scrapeless API密钥存储在环境变量或管理的秘密存储中。不要将密钥提交到源代码控制或包含在Webhook日志中。
在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。



