| 以真实消费者视角检查亚马逊Listing健康状态。通过网页抓取模拟消费者浏览体验, 检查页面可见性、价格、卖家信息、购物车、配送、类目节点、排名、差评等关键指标, 并验证关键词搜索可见性。使用时机:新品上架后验收、日常巡检、排查Listing异常。 触发词:/zach-listing-health-checker
npx skills add https://github.com/zach22-1999/amazon-skills --skill zach-listing-health-checker
本公开版 Skill 是自包含的,不依赖任何私有工作区文件、内部参考库或品牌专属协议。
开始执行前,建议先通读本 Skill 自身的方法论部分,重点关注:
如果你已经有自己的 Listing 诊断框架,可以作为补充背景使用;但本 Skill 的执行不依赖外部私有资料。
通过 curl + BeautifulSoup 抓取亚马逊服务端渲染的 HTML,不借助任何 API 或第三方数据工具。
原因:我们要验证的是"消费者打开亚马逊能看到什么"。任何 API 返回的数据都可能与前台页面不一致(缓存、区域差异、权限差异)。这个技能的价值就在于所见即所得。
亚马逊商品页面的核心数据(标题、价格、卖家、BSR、评论等)全部在服务端渲染的 HTML 中,无需 JavaScript 执行。curl 配合正确的浏览器 Headers 可稳定获取完整页面(~2.4MB HTML)。
脚本位于 skills/zach-listing-health-checker/scripts/:
新品上架流程:
zach-new-product-listing-writer → zach-launch-checklist-generator
→ 【zach-listing-health-checker:上架验收】
→ zach-ad-campaign-builder → 广告投放
日常运营:
定期巡检 → 【zach-listing-health-checker】→ 发现问题 → 人工修复 → 复检
| 方向 | 技能 | 关系 |
|------|------|------|
| 上游 | zach-new-product-listing-writer | Listing 创建完成后需要验收 |
| 上游 | zach-launch-checklist-generator | 上架检查清单的执行环节之一 |
| 下游 | 人工修复 | 检查出问题后需要人工介入 |
| 下游 | 复检(再次调用本技能) | 修复后重新验证 |
| 参数 | 必需 | 默认值 | 说明 |
|------|------|--------|------|
| ASIN | ✅ 是 | — | 10 位字母数字,通常以 B0 开头 |
| 站点代码 | 否 | US | 支持的站点见下方列表 |
| 卖家名称 | 否 | — | 用于校验 Sold By 是否正确 |
| 核心关键词 | 否 | — | 逗号分隔,用于搜索可见性验证 |
| 站点代码 | 域名 | 默认邮编 | 货币 |
|----------|------|----------|------|
| US | amazon.com | 90001 | USD |
| UK / GB | amazon.co.uk | SW1A 1AA | GBP |
| DE | amazon.de | 10115 | EUR |
| FR | amazon.fr | 75001 | EUR |
| IT | amazon.it | 00100 | EUR |
| ES | amazon.es | 28001 | EUR |
| CA | amazon.ca | M5V 2T6 | CAD |
| JP | amazon.co.jp | 100-0001 | JPY |
| MX | amazon.com.mx | 06600 | MXN |
| AU | amazon.com.au | 2000 | AUD |
检查内容:页面是否正常渲染商品信息。
| 状态 | 判断条件 |
|------|----------|
| ✅ 正常 | 页面包含商品标题、图片、价格等核心元素 |
| ❌ 异常 | 出现狗狗页面(Dog page)、404、"Looking for something?"、"Currently unavailable"、验证码页面 |
常见异常场景:
检查内容:当前售价、划线价、折扣、优惠券。
| 状态 | 判断条件 |
|------|----------|
| ✅ 正常 | 有明确售价显示 |
| ⚠️ 需关注 | 价格与预期差异较大(需用户判断) |
| ❌ 异常 | 无价格显示、显示 "See price in cart"、或价格为 $0 |
记录字段:
检查内容:Sold by 和 Ships from 信息。
| 状态 | 判断条件 |
|------|----------|
| ✅ 正常 | Sold by 显示为用户指定的卖家名称 |
| ❌ 异常 | Sold by 不是指定卖家(Buy Box 被抢) |
| ⚠️ 需关注 | 用户未指定卖家,仅记录当前信息 |
记录字段:
检查内容:是否有 Add to Cart / Buy Now 按钮。
| 状态 | 判断条件 |
|------|----------|
| ✅ 正常 | 同时显示 Add to Cart 和 Buy Now |
| ⚠️ 需关注 | 只有 Add to Cart 没有 Buy Now,或显示 "See All Buying Options" |
| ❌ 异常 | 无购买按钮,或显示 "Currently unavailable" |
检查内容:预计送达时间和 Prime 状态。
| 状态 | 判断条件 |
|------|----------|
| ✅ 正常 | 有明确的预计送达日期,且在 7 天以内 |
| ⚠️ 需关注 | 配送时间 7-14 天 |
| ❌ 异常 | 配送时间超过 14 天、或无配送信息 |
记录字段:
检查内容:
| 状态 | 判断条件 |
|------|----------|
| ✅ 正常 | 能正常显示类目信息 |
| ⚠️ 需人工确认 | 类目信息显示正常,但需人工确认是否为期望的节点 |
记录字段:
Musical Instruments › Electronic Music, DJ & Karaoke › Karaoke Equipment › Systems › Portable Systems)> 注意:类目节点的"正确性"需要人工判断,技能只负责抓取和展示,不做自动判断。
检查内容:Best Sellers Rank 在各层级类目中的排名。
| 状态 | 判断条件 |
|------|----------|
| ✅ 正常 | 有 BSR 排名数据 |
| ⚠️ 需关注 | 排名显著下跌(需历史对比) |
| ❌ 异常 | 无 BSR 排名(可能表示商品未正常入库或类目异常) |
记录字段:
#152 in Musical Instruments → #3 in Portable Karaoke Systems检查内容:首页评论中的差评(1-3 星)数量和内容。
| 状态 | 判断条件 |
|------|----------|
| ✅ 正常 | 首页 0 条差评 |
| ⚠️ 需关注 | 首页 1-2 条差评 |
| ❌ 异常 | 首页 3 条及以上差评 |
记录字段:
检查内容:用核心关键词搜索后,商品是否出现在搜索结果首页。
| 状态 | 判断条件 |
|------|----------|
| ✅ 正常 | 在首页自然位找到 |
| ⚠️ 需关注 | 仅在广告位找到,自然位未找到 |
| ❌ 异常 | 首页完全未找到(可能被压制或搜索不可见) |
关键操作:
https://{domain}/dp/{ASIN}运行 fetch_amazon_page.py 脚本抓取商品页面并提取结构化数据:
python3 skills/zach-listing-health-checker/scripts/fetch_amazon_page.py {ASIN} --site {站点代码}
脚本输出 JSON,包含以下字段:
page_status:页面状态(ok / dog_page / unavailable / captcha / fetch_failed)title:商品标题price:当前售价、划线价、折扣、优惠券seller:sold_by、ships_fromcart:add_to_cart、buy_now、see_all_buying_optionsdelivery:配送文本、Prime 标识category:搜索栏大类、面包屑路径bsr:各层级排名和类目ratings:评分星级、评论总数reviews_on_page:首页评论详情(星级、标题、日期、内容、是否差评)variants:变体信息stock:库存状态anomalies:异常提示列表将脚本返回的 JSON 数据逐项对照第 3 节的判断标准,为每个检查项标记状态:
对于脚本未能提取的字段(值为空或缺失),标注为「⚠️ 未能获取」,不做推测。
⛔ 仅在用户提供了核心关键词时执行本步骤。
对每个核心关键词,运行 fetch_amazon_search.py 脚本:
python3 skills/zach-listing-health-checker/scripts/fetch_amazon_search.py "{keyword}" {ASIN} --site {站点代码}
脚本输出 JSON,包含:
target_found:目标 ASIN 是否在首页target_position:位置编号target_type:organic(自然位)或 sponsored(广告位)search_department:搜索范围first_page_results:首页所有结果列表(含 ASIN、标题、位置、类型)captcha:是否被验证码拦截根据第 3.9 节的判断标准标记搜索可见性状态。
注意:多个 ASIN 搜索同一关键词时,只需抓取一次搜索结果页,在结果中查找所有目标 ASIN。
按照第 5 节的报告模板,将所有检查结果整理为 Markdown 报告。
总体评估逻辑:
将报告保存到:
outputs/listing-health-check/{品牌名或ASIN}/{YYYY-MM-DD}_{ASIN}_健康检查报告.md
如果无法从页面确定品牌名,使用卖家名称或 ASIN 作为目录名。
在终端向用户输出:
---
created: YYYY-MM-DD HH:MM
topic: {ASIN} Listing 健康检查
type: 健康检查报告
data_sources: 亚马逊官网页面抓取(curl + BeautifulSoup)
---
# {ASIN} Listing 健康检查报告
> 检查时间:YYYY-MM-DD HH:MM
> 站点:{站点代码} ({域名}) | 邮编:{邮编}
> 商品标题:{完整标题}
## 总体评估
| 状态 | 说明 |
|------|------|
| 🟢 / 🟡 / 🔴 | {一句话总结,如"链接健康,所有指标正常"} |
通过:X/9 | 需关注:X | 异常:X
---
## 逐项检查结果
### 1. ✅/❌ 页面可访问性
- **状态**:正常 / 异常
- **详情**:{具体描述}
### 2. ✅/⚠️/❌ 价格与优惠
- **当前售价**:${XX.XX}
- **划线价**:${XX.XX} / 无
- **折扣**:{X% off} / 无
- **优惠券**:{金额或百分比} / 无
- **Subscribe & Save**:{折扣} / 无
### 3. ✅/❌ 卖家信息(Buy Box)
- **Sold by**:{卖家名}
- **Ships from**:{发货方}
- **期望卖家**:{用户指定} → ✅ 匹配 / ❌ 不匹配 / 未指定
### 4. ✅/⚠️/❌ 购物车状态
- **Add to Cart**:有 / 无
- **Buy Now**:有 / 无
- **Buy Box 持有**:是 / 否
### 5. ✅/⚠️/❌ 配送信息
- **预计送达**:{日期}
- **Prime**:是 / 否
- **配送费**:{免费 / 金额}
- **判断**:正常(≤7天)/ 偏慢(7-14天)/ 异常(>14天)
### 6. ✅/⚠️ 类目与节点
- **搜索栏大类**:{大类名称}
- **面包屑路径**:{完整路径}
- **提示**:请人工确认节点是否为期望类目
### 7. ✅/⚠️/❌ BSR 排名
| 层级 | 类目 | 排名 |
|------|------|------|
| 大类 | {类目名} | #{排名} |
| 子类1 | {类目名} | #{排名} |
| 子类2 | {类目名} | #{排名} |
### 8. ✅/⚠️/❌ 差评监控
- **总评分**:{X.X} 星({X,XXX} 条评论)
- **首页差评数**:{X} 条
- **差评趋势**:首次检查,无历史对比基线 / 较上次 {增加/减少} {X} 条
差评详情:
| 星级 | 标题 | 日期 | 内容摘要 |
|------|------|------|----------|
| ⭐{X} | {标题} | {日期} | {内容} |
### 9. ✅/⚠️/❌ 搜索可见性
| 关键词 | 搜索范围 | 是否找到 | 位置 | 类型 |
|--------|----------|----------|------|------|
| {keyword1} | All Departments | 是/否 | #{位置} | 自然/广告 |
| {keyword2} | {范围} | {结果} | {位置} | {类型} |
---
## 问题清单与行动建议
| 优先级 | 问题 | 建议操作 |
|--------|------|----------|
| 🔴 高 | {问题描述} | {具体建议} |
| 🟡 中 | {问题描述} | {具体建议} |
---
## 原始数据快照
> 以下为脚本抓取的原始关键信息,供核对。
{保留核心原始数据,便于日后审计}
本技能严格遵守以下数据原则:
| 局限 | 说明 | 应对方式 |
|------|------|----------|
| JS 动态内容 | curl 获取服务端渲染 HTML,JS 动态加载的内容可能缺失 | 如关键信息缺失,标注「⚠️ 可能因动态加载未获取」 |
| 反爬机制 | 亚马逊可能返回验证码或简化页面 | 脚本自动检测验证码,报告中标注「❌ 被亚马逊拦截,建议手动检查」 |
| 地域差异 | 未实际设置邮编,可能影响价格和配送显示 | 在报告中说明使用的邮编和站点 |
| 搜索个性化 | 搜索结果受算法影响 | 注明"搜索结果为特定时刻快照,实际可能因用户画像不同而异" |
| 单次快照 | 无法检测"突然新增差评"等时序变化 | 建议定期执行并对比历史报告 |
/zach-listing-health-checker B0XXXXXXXXX US MyBrand "main keyword, secondary keyword"
上架 24-48 小时后执行,重点关注:
/zach-listing-health-checker B0XXXXXXXXX
每周例行检查,重点关注:
帮我检查 B0XXXXXXXXX,最近销量突然下降,看看链接有没有问题
侧重排查:
用户提供多个 ASIN 时,逐个执行完整检查流程,最后输出汇总表。
本技能不消费其他技能的输出,也不产出供其他技能消费的数据。
它是一个独立的"健康巡检"工具,输出人可读的诊断报告。
唯一的"数据流"是历史报告对比:
本次报告 ↔ 上次报告(同一 ASIN)→ 差评趋势判断
pip install beautifulsoup4)无需 Sorftime MCP、无需外部 API。脚本均位于 skills/zach-listing-health-checker/scripts/ 目录。
zach-listing-rufus-optimizer(内容诊断)、zach-asin-sales-anomaly-analyzer(异常排查)报告完成状态:DONE / DONE_WITH_CONCERNS / BLOCKED / NEEDS_CONTEXT
Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.
Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances
Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.
Build and distribute Expo development clients locally or via TestFlight
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
Take zach22-1999/zach-listing-health-checker from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference pip.
Without those the skill loads but fails at the first command.