亚马逊鲁弗斯抓取器:按ASIN提供产品相关答案
TL;DR:
- Amazon Rufus,亚马逊的应用内购物助手,通过Scrapeless Scraping API提供,作为
scraper.amazon,类型为type: "rufus"。 - 它有两种模式: 发送
keywords以获取类别回答,包括分组和排名的产品推荐——或者添加一个asin来询问有关特定商品的产品知晓问题。 - 向
/api/v1/scraper/request发送一个POST请求,返回合成的答案、分组的推荐、扁平化的products数组,以及Rufus建议的后续问题。 - 产品知晓参数是
asin。 设置后,Rufus会针对该特定产品进行回答;如果没有该参数,问题将得到一个通用的“你在问哪个产品?”的回复。 - 免费开始。 新的Scrapeless账户包含免费的Scraper API积分——请在app.scrapeless.com注册。
Amazon Rufus用简单的语言回答购物问题——“最佳噪音消除耳机”——现在它也可以回答关于特定产品的问题:“这个适合健身吗?”Scrapeless Scraping API将这两者都捕获为结构化JSON。本指南展示了请求、两种模式、响应格式以及使Rufus具有产品知晓能力的唯一参数——asin。以下每个请求和字段均来自抓取工具的实时运行。
使用Rufus爬虫可以做什么
- 跟踪推荐分享 — 捕获Rufus在类别查询中命名的产品,分组部分以及顺序。
- 大规模回答产品特定问题 — 传递一个ASIN和问题,查看Rufus如何描述一个产品的适用性、用例或比较。
- 监控品牌或竞争对手 — 观察一个产品在Rufus的推荐中是否出现,以及它的表述方式,随时间推移的变化。
- 向下游系统提供数据 — 将答案、分组推荐和后续问题作为干净的JSON传送到仪表板或警报中。
两种模式:类别和产品知晓
Rufus类型的行为取决于您是否包含asin:
- 类别模式(仅
keywords)。 Rufus返回一个合成的推荐,包括将产品分组为标记部分的content_blocks,一个扁平化的products数组和一组related_questions。使用此模式可查看Rufus对查询的推荐。 - 产品知晓模式(
keywords+asin)。 Rufus将问题限定为特定产品,并直接回答。在实时运行中,询问“这适合健身和跑步吗?”并提供一对索尼WH-1000XM6耳机的ASIN会得到“No,索尼WH-1000XM6耳机不适合健身和跑步……”。去掉asin后,得到的同样问题将是一个通用的“你在问哪个产品?”的回复——ASIN才是使答案针对特定产品的关键。
端点和参数
Rufus类型在同步Scraping API端点上运行。使用您的令牌在x-api-token头中进行身份验证。
- 端点:
POST https://api.scrapeless.com/api/v1/scraper/request - Actor:
scraper.amazon
| 输入字段 | 类型 | 必需 | 描述 |
|---|---|---|---|
type |
字符串 | 是 | 设置为rufus。 |
keywords |
字符串 | 是 | 购物问题或查询。 |
domain |
字符串 | 是 | 亚马逊商店的网址,例如www.amazon.com。 |
asin |
字符串 | 否 | 产品ASIN。当存在时,Rufus会对此特定产品进行回答。 |
结果将以synchronously的方式返回在result对象中。
经过身份验证的请求
类别模式(示例 - 替换令牌):
bash
curl 'https://api.scrapeless.com/api/v1/scraper/request' \
--header 'Content-Type: application/json' \
--header 'x-api-token: YOUR_API_TOKEN' \
--data '{
"actor": "scraper.amazon",
"input": {
"type": "rufus",
"keywords": "最佳噪音消除耳机",
"domain": "www.amazon.com"
}
}'
产品知晓模式添加asin:
bash
curl 'https://api.scrapeless.com/api/v1/scraper/request' \
--header 'Content-Type: application/json' \
--header 'x-api-token: YOUR_API_TOKEN' \
--data '{
"actor": "scraper.amazon",
"input": {
"type": "rufus",
"keywords": "这适合健身和跑步吗?",
"domain": "www.amazon.com",
"asin": "B0GN4CFF6H"
}
}'
Python集成
此示例从SCRAPELESS_API_KEY环境变量中读取令牌,并运行产品知晓的Rufus查询。仅使用Python标准库。
python
import json
import os
import urllib.request
API_URL = "https://api.scrapeless.com/api/v1/scraper/request"
API_TOKEN = os.environ["SCRAPELESS_API_KEY"]
payload = {
"actor": "scraper.amazon",
"input": {
"type": "rufus",
"keywords": "这适合健身和跑步吗?",
"域名": "www.amazon.com",
"asin": "B0GN4CFF6H",
},
}
请求 = urllib.request.Request(
API_URL,
data=json.dumps(payload).encode("utf-8"),
headers={"Content-Type": "application/json", "x-api-token": API_TOKEN},
method="POST",
)
with urllib.request.urlopen(请求, timeout=180) as 响应:
数据 = json.loads(响应.read().decode("utf-8"))
结果 = 数据.get("result", {})
print("查询:", 结果.get("user_query"))
print("答案:", (结果.get("inference_text") or "")[:200])
## 你所获得的反馈
类别模式返回最丰富的有效载荷。下面的字段是你最常使用的;值是来自实时运行的示例,只做了长度裁剪。
```json
// 来自live scraper.amazon(类型rufus)运行的示例 - 字段名称是真实的,值已裁剪。
{
"metadata": { "type": "rufus" },
"result": {
"user_query": "最佳噪音取消耳机",
"inference_text": "这里有一些最佳的噪音取消耳机 ...",
"content_blocks": [
{ "type": "text" },
{ "type": "product_section", "products": [{ "asin": "B0FDKR293G" }] }
],
"products": [
{
"asin": "B0FDKR293G",
"title": "Bose QuietComfort Ultra 蓝牙耳机(第二代)",
"price": "$369.00",
"original_price": "$449.00",
"rating": "4.3",
"reviews": "2,297",
"category": "最佳综合ANC",
"delivery": "免费配送,7月19日(周日)",
"image_url": "<产品图像URL>",
"url": "<亚马逊产品URL>"
}
],
"related_questions": [
"最佳运动用ANC耳塞",
"对比Sony XM5与Bose QC Ultra"
]
}
}
| 字段 | 类型 | 描述 |
|---|---|---|
metadata.type |
字符串 | 运行类型,例如 rufus。 |
result.user_query |
字符串 | 发送给Rufus的问题。 |
result.inference_text |
字符串 | Rufus的综合答案。 |
result.content_blocks |
数组 | 有序的 text 和 product_section 块(分组、排名推荐)。 |
result.products |
数组 | 扁平化的产品列表:asin,title,price,original_price,rating,reviews,category,delivery,image_url,url。 |
result.related_questions |
数组 | Rufus建议的后续问题。 |
产品感知模式返回相同的封装,但 inference_text 中的答案仅限于您传入的ASIN,通常不包含 products 数组,因为Rufus是在回答单个项而不是推荐列表。
常见数据格式问题
asin是产品感知开关 — 必须为asin。 传入product_id或productId会被静默忽略;只有asin将Rufus限制到特定产品。- 类别和产品感知响应不同。 类别查询返回
products和content_blocks;产品感知查询返回特定产品的inference_text,通常不返回products数组。根据您发送的内容进行分支。 - 价格和评分为字符串。
price,original_price,rating和reviews作为显示字符串返回("$369.00","2,297"),因此应解析它们,而不是直接转换。 content_blocks携带分组。 扁平化的products数组失去了部分标签;当您需要知道Rufus将产品放在哪个部分时,请读取content_blocks。- 答案是每个查询的快照。 Rufus的响应反映了某一时刻的一个查询,而不是目录导出,因此要随时间捕捉以跟踪变化。
相关参与者和阅读资料
Rufus类型是亚马逊演员的一种模式。Scrapeless发布了一个开源的Rufus爬虫示例仓库,其中包含五种语言的可运行代码。关于助手的背景,亚马逊介绍了Rufus,它的生成购物助手,并在其零售新闻中心中介绍了更广泛的产品组合。有关另一种AI回答引擎,请参阅ChatGPT爬虫API指南。
结论
Rufus爬虫将亚马逊的购物助手转变为结构化JSON,分为两种模式从一个端点发送:发送 keywords 进行分组、排名推荐,或添加 asin 以获取关于特定项目的产品感知答案。根据您发送的模式进行分支,解析显示字符串的价格和评级,并在需要分组时读取 content_blocks。这是跟踪Rufus如何推荐和描述产品的可靠来源。
准备好将Rufus的回答捕获为数据吗?从Scrapeless仪表板免费开始,查看该演员在抓取API产品页面中的适用性,或在Scrapeless定价上比较计划。
常见问题解答
问:Amazon Rufus抓取器是什么?
答:它是Scrapeless抓取API演员scraper.amazon,类型为type: "rufus",它向Amazon Rufus发送问题并以结构化JSON的形式返回答案——合成的答案、分组产品选择、扁平化的products数组和建议的后续问题。
问:我如何询问特定产品?
答:在input中添加asin字段。Rufus随后将回答关于该具体产品的问题。没有asin时,同样的问题将返回一个通用的“哪个产品?”的回复。
问:它使用哪个端点和参数?
答:POST https://api.scrapeless.com/api/v1/scraper/request,其中actor设置为scraper.amazon,input对象包含type: "rufus"、keywords、domain,以及可选的asin。用您的令牌在x-api-token中进行身份验证。
问:product_id可以代替asin使用吗?
答:不可以。只有asin能将Rufus限制为特定产品;product_id和productId会被忽略。
问:我如何获取产品被分组的部分?
答:阅读content_blocks。扁平化的products数组删除了部分标签,而content_blocks保留了Rufus使用的product_section分组。
问:响应是同步的吗?
答:是的。result对象在同一响应中返回;您不需要轮询一个单独的端点。
在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。



