amazon-review-scraper
批量采集亚马逊商品评论,输出结构化数据
SKILL.mdskills/amazon-review-scraper/SKILL.md
GitHubAmazon亚马逊商品评论采集 Skill
角色定位
你负责调用 amazon-review-scraper skill 的高层业务接口,帮助用户完成亚马逊商品评论数据采集相关自动化任务。
当用户目标明确属于亚马逊评论采集时,必须优先使用本 skill 提供的高层接口,而不是自行组合底层浏览器步骤。
调用方式
run.py 位于本 SKILL.md 的同级目录。执行前先确认本文件的实际读取路径,取其所在目录作为 <skill_path>。
本技能已升级为 BrowserWorker 插件操控架构:run.py 通过项目内置 BrowserWorker daemon 的 /execute 接口加载 scripts/actions/run_scrape.py。action 使用 browser.goto、browser.evaluate、browser.wait_ms 和 browser.request_help 完成页面交互,不再直接操作 Chrome DevTools Protocol,也不依赖用户机器安装 ChromeDriver、Playwright、Selenium、requests 或 BeautifulSoup。
action 打开评论页后使用 BrowserWorker 框架级 detect_page_state(domain_hint=...) 做通用页面状态检测,遇到登录、验证码、地区确认、风控拦截等状态时调用 request_help(validate_after=True),用户继续后由框架二次校验。不要自动反复刷新评论页或尝试绕过验证码。
端口发现顺序:BrowserWorker_PORT / MANAI_BROWSER_CONTROL_PORT → 工作区 storage/browser_daemon.lock → 兼容旧锁文件 ~/.BrowserWorker/BrowserWorker.lock → 默认 12321。daemon 未响应时会尝试从项目内 BrowserWorker 目录自动启动。
推荐:--key value 扁平参数(无引号转义问题)
python <skill_path>/run.py run_scrape --urls "https://www.amazon.com/product-reviews/B0xxx/ref=cm_cr_dp_d_show_all_btm?ie=UTF8&reviewerType=all_reviews" --commentNumber 20
兼容:单个 JSON 字符串
python <skill_path>/run.py run_scrape '{"urls":["https://www.amazon.com/product-reviews/B0xxx/ref=cm_cr_dp_d_show_all_btm?ie=UTF8&reviewerType=all_reviews"],"commentNumber":20}'
- 成功:stdout 输出 JSON 结果
- 失败:stderr 输出错误信息,退出码非 0
前提:ManAI 已启动,或项目内 BrowserWorker 可被 run.py 自动启动。
适用场景
适合以下任务:
- 批量采集指定亚马逊商品的用户评论数据
- 竞品评论分析——提取评分、评论内容、评论类型等结构化信息
- 获取评论中的图片和视频 URL 用于素材收集
- 跨多个 ASIN 的评论数据聚合
方法速查表
| 用户需求 | method | 必填参数示例 |
|---|---|---|
| 采集亚马逊商品评论 | run_scrape |
--urls "https://www.amazon.com/product-reviews/B0xxx/...&reviewerType=all_reviews" |
核心接口
评论采集
| method | 关键参数 | 说明 |
|---|---|---|
run_scrape |
urls, commentNumber?, downloadPicture?, downloadVideo? |
批量采集 Amazon 商品评论 |
参数约定
urls
Amazon 评论页面链接或商品详情页链接。推荐提供评论页面链接并包含 reviewerType=all_reviews,如果用户只提供商品详情页,技能会从 URL 提取 ASIN 并自动转换为评论页。
链接格式示例:
https://www.amazon.com/product-reviews/B0XXXXXXXX/ref=cm_cr_dp_d_show_all_btm?ie=UTF8&reviewerType=all_reviews
多个链接可通过重复 --urls 传入:
python <skill_path>/run.py run_scrape --urls "链接1" --urls "链接2"
commentNumber
| 值 | 含义 |
|---|---|
10(默认) |
每商品最多采集 10 条评论 |
1~999 |
自定义每商品最大采集数量 |
downloadPicture
| 值 | 含义 |
|---|---|
false(默认) |
不采集评论图片 URL |
true |
在结果中包含每条评论的图片 URL 列表 |
downloadVideo
| 值 | 含义 |
|---|---|
false(默认) |
不采集评论视频 URL |
true |
在结果中包含每条评论的视频 URL 列表 |
参数校验规则(调用守门)
⚠️ 强制约束:LLM 在执行任何 method 之前,必须先按下表校验参数,全部通过才允许执行脚本命令。任何一项不通过,禁止执行,直接向用户反馈缺失或不合法的参数。
run_scrape 参数校验
| 参数 | 必填 | 类型 | 校验规则 | 不满足时的反馈话术 |
|---|---|---|---|---|
urls |
✅ | string[] |
至少包含 1 项;每项须为合法 Amazon URL,并能从 URL 中识别 ASIN | "缺少必填参数 urls,请提供至少一个 Amazon 商品详情页或评论页链接。" |
commentNumber |
❌ | number |
若提供,须为 1~999 的整数;默认 10 | "参数 commentNumber 须为 1~999 之间的整数。" |
downloadPicture |
❌ | boolean |
若提供,须为 true 或 false;默认 false |
"参数 downloadPicture 须为 true 或 false。" |
downloadVideo |
❌ | boolean |
若提供,须为 true 或 false;默认 false |
"参数 downloadVideo 须为 true 或 false。" |
校验流程
用户发出调用意图
→ LLM 识别目标 method
→ LLM 逐项检查「参数校验规则」表
→ 全部通过?
├─ 是 → 组装命令并执行
└─ 否 → 列出所有不满足的参数及反馈话术,返回给用户,不执行命令
校验示例
通过 → 执行:
用户:帮我采集这个商品的评论 https://www.amazon.com/product-reviews/B0xxx/ref=cm_cr_dp_d_show_all_btm?ie=UTF8&reviewerType=all_reviews
LLM 校验:
✅ urls = ["https://www.amazon.com/product-reviews/B0xxx/...&reviewerType=all_reviews"](非空,合法 Amazon URL,可识别 ASIN)
✅ commentNumber 使用默认值 10
→ 执行命令
不通过 → 反馈:
用户:帮我采集亚马逊商品评论
LLM 校验:
❌ urls = [](必填参数缺失)
→ 反馈:"缺少必填参数 `urls`,请提供至少一个包含 `&reviewerType=all_reviews` 的 Amazon 评论页面链接。"
使用示例
采集单个商品评论(默认 10 条)
python <skill_path>/run.py run_scrape --urls "https://www.amazon.com/product-reviews/B0XXXXXXXX/ref=cm_cr_dp_d_show_all_btm?ie=UTF8&reviewerType=all_reviews"
采集多个商品评论,每个最多 50 条,包含图片
python <skill_path>/run.py run_scrape --urls "https://www.amazon.com/product-reviews/B0xxx/...&reviewerType=all_reviews" --urls "https://www.amazon.com/product-reviews/B0yyy/...&reviewerType=all_reviews" --commentNumber 50 --downloadPicture true
使用 JSON 参数
python <skill_path>/run.py run_scrape '{"urls":["https://www.amazon.com/product-reviews/B0xxx/ref=cm_cr_dp_d_show_all_btm?ie=UTF8&reviewerType=all_reviews"],"commentNumber":30,"downloadPicture":true,"downloadVideo":true}'
执行策略
当用户提出亚马逊评论采集相关任务时,应按以下顺序处理:
- 参数收集:从用户消息中提取评论链接、采集数量等参数
- 参数校验:按「参数校验规则」逐项检查,特别确认链接包含
&reviewerType=all_reviews,不满足则反馈用户并停止 - 链接修正:如果用户给的是商品详情页链接而非评论页链接,帮助转换为评论页格式
- 执行采集:调用
run_scrape方法 - 结果整理:将返回的 JSON 结果整理为用户易读的格式(如表格),高亮统计信息
- 如果接口执行失败,必须返回真实错误并说明下一步排查方向
常见失败场景
链接格式错误
表现:
- 报错无法识别 ASIN 或未返回评论
处理:
- 提醒用户提供合法 Amazon 商品详情页或评论页链接
- 优先帮助用户从商品详情页 URL 转换为评论页 URL
Amazon 反爬限制
表现:
- 返回空评论或评论数量远低于预期
- 页面加载超时
处理:
- 建议减少单次采集数量
- action 已内置页面等待和低频翻页,必要时降低
commentNumber - 根据
request_help提示,在插件浏览器中完成验证码或登录后继续 - 不要自动反复请求同一评论页,避免触发更强风控