关于 scraperapi-price-monitoring
scraperapi-price-monitoring 是用于一次性检查商品价格变化的技能,面向需要比较当前价格与基准文件的用户。它通过 ScraperAPI 结构化端点获取 Amazon、Walmart 或 Google Shopping 数据,并生成分类报告。
主要功能
- 01解析 Amazon、Walmart 和购物查询
- 02调用结构化价格端点
- 03对照基准计算价格变化
- 04分类缺货、降价和失败状态
- 05生成价格变化报告
适用场景
- 01检查关注商品是否降价
- 02比较本次价格与基准记录
- 03发现补货、缺货或商品下架
- 04按价格阈值筛查商品
MCP 相关
优先使用 ScraperAPI MCP 服务的 amazon_product、walmart_product 和 google_shopping 工具获取结构化价格数据。MCP 不可用时可改用 curl。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scraperapi/ scraperapi-skills --skill scraperapi-price-monitoring安装后在 Claude Code 中输入/scraperapi-price-monitoring确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/price-baseline-template.jsonprice-report-template.mdreferences/structured-endpoints.md详细介绍
价格监控
给定产品列表(ASIN、Walmart URL 或自由文本 Google Shopping 查询)和可选的基准文件,通过 ScraperAPI 的结构化端点获取当前价格,与基准进行比较,并生成结构化的价格变动报告。
你——Claude——使用 Bash 工具执行 API 调用。不要生成供用户运行的脚本;请在本轮中自行获取数据,并在过程中报告发现。如果用户明确要求提供可通过 CLI/cron 运行的脚本,请指引他们使用 scraperapi-cli,然后停止。
身份验证: 所有传输方式都通过 ScraperAPI 进行身份验证。用户设置时,MCP 服务会从其自身配置的环境中读取密钥。curl 回退方式会从 shell 中读取 $SCRAPERAPI_API_KEY。不要单独检查密钥;直接发起第一个实际请求。如果密钥缺失或无效,ScraperAPI 会返回 401,第 3 阶段的故障处理表已涵盖这种情况。添加预检 echo 只会让用户多确认一次权限请求,却无法获知任何从首次调用中无法获知的信息。
第 1 阶段——解析监控列表
获取任何数据之前,先对每个目标进行分类。不同输入会路由到不同的 ScraperAPI 端点,路由错误会浪费额度。
| 输入格式 | 端点 | 必需参数 |
|---|---|---|
10 位字母数字字符串(例如:B08N5WRWNW) | structured/amazon/product | asin |
包含 amazon. 的 URL | structured/amazon/product | 从 URL 中提取 asin,失败时使用 url |
包含 walmart.com 的 URL | structured/walmart/product | url |
自由文本查询(例如:"airpods pro 2") | structured/google/shopping | query |
| 其他任何内容 | 告知用户此技能不支持该内容;建议对任意 URL 使用 scraperapi-autonomous-research |
运行前公布解析后的计划:“监控列表已解析:3 个 Amazon 产品、1 个 Walmart 产品、1 个 Google Shopping 查询。基准:prices.json(上次更新于 2026-05-25)。现在开始获取数据。”
对于 Amazon URL,使用类似 /(?:dp|gp/product)/([A-Z0-9]{10})/ 的正则表达式提取 ASIN——直接提供 ASIN 时,结构化端点比提供完整 URL 更快、成本更低。
第 2 阶段——加载基准(如有)
基准是用户在多次运行中维护的 JSON 文件。其结构见 assets/price-baseline-template.json。如果用户引用了基准文件,请在获取数据前读取,以便一次性完成比较。
如果不存在基准,则将本次运行视为首次记录——每个产品都成为一条基准记录,价格变动报告仅列出当前观测到的价格(不包含差值)。结束时可提出写入该文件,以便下次运行时进行比较。
未经确认,绝不静默覆盖基准。如果用户希望更新文件,请在他们查看报告后,于本次运行结束时明确执行。
第 3 阶段 — 获取当前价格
此技能请使用 ScraperAPI MCP 服务。 amazon_product、walmart_product 和 google_shopping 等工具提供类型化参数和结构化响应,不会遇到 Shell 引号转义或解析标准输出的问题。对于字段准确性很重要的定价工作流,这正是你需要的方式。
如果 ScraperAPI MCP 服务仍显示正在连接,请稍等片刻,然后先用 ToolSearch 重新检查,再进行其他操作。如果 MCP 确实不可用,请改用 curl(见下文)——此处不要使用 sapi CLI,即使它位于 $PATH 中也不行。CLI 输出需要通过 Shell 解析,而这很容易导致价格数据出错;此技能通过一种传输方式处理所有价格调用,流程也更简单。
并行运行所有目标——在一条消息中发起多个工具调用——这样,包含 10 款产品的关注列表大约一次往返就能完成,而不是十次。
MCP 工具
| 目标 | 工具 | 关键参数 |
|---|---|---|
| Amazon 产品 | amazon_product | asin,可选 countryCode(例如 "us")、tld |
| Walmart 产品 | walmart_product | productId(/ip/<id> 中的数字,例如 https://walmart.com/ip/5021188053 → "5021188053")、tld |
| Google Shopping 查询 | google_shopping | query,可选 countryCode |
完整的架构请参阅 scraperapi-mcp 技能。Walmart 的 MCP 工具接受的是 产品 ID,而不是 URL——请提取 /ip/<id> 部分中的 ID。
curl 备用方案
curl -sG "https://api.scraperapi.com/structured/amazon/product" \
--data-urlencode "api_key=$SCRAPERAPI_API_KEY" \
--data-urlencode "asin=B08N5WRWNW" --data-urlencode "country=us"
curl -sG "https://api.scraperapi.com/structured/walmart/product" \
--data-urlencode "api_key=$SCRAPERAPI_API_KEY" \
--data-urlencode "url=https://www.walmart.com/ip/123456789"
curl -sG "https://api.scraperapi.com/structured/google/shopping" \
--data-urlencode "api_key=$SCRAPERAPI_API_KEY" \
--data-urlencode "query=airpods pro 2" --data-urlencode "country=us"
预期响应字段(MCP 和 curl 相同)
- Amazon:
pricing(格式化字符串,例如"$129.99")、list_price、availability_status、product_information.title、优惠信息。从pricing中提取数值,并单独保留货币。 - Walmart:
price、availability、seller_name、product_name。 - Google Shopping:
shopping_results[],其中包含title、price、extracted_price(ScraperAPI 能解析时为数值)、source(零售商)、link。
确切的字段名称偶尔会变化——请检查每次运行的第一个实际响应,并据此调整解析方式。
处理失败
MCP 工具会将错误作为工具调用错误返回;curl 会返回 HTTP 状态码。
| 状态 | 操作 |
|---|---|
| 200,但价格字段为空或缺失 | 视为“价格不可见”——可能是缺货或页面布局已更改。记录 null 并在结果中说明。 |
| 401 | API 密钥缺失或无效——停止操作,并告知用户设置 SCRAPERAPI_API_KEY(或修正其值)。不要重试。 |
| 403 | 请求被拦截——使用高级标志重试一次(MCP 使用 premium: true,curl 使用 &premium=true)。如果仍然失败,将该目标标记为失败并继续。 |
| 404 | 产品已不存在——在报告中将其记录为 removed。 |
| 429 | 达到并发限制——退避等待(休眠 3 秒)后重试一次。 |
| 5xx | 临时错误——使用退避策略最多重试 3 次(2 秒、4 秒、8 秒)。 |
| MCP 工具不可用 | 本次运行剩余部分改用 curl。 |
不要无限重试。重试后仍失败的目标,应在报告中添加 status: "failed" 的行,让用户知道缺少哪些数据。
额度预算
每次结构化调用通常消耗约 5 个额度点。包含 50 款产品的关注列表每次运行约消耗 250 个额度点。启动超过约 100 个目标的批次前,请先告知用户预估用量并征得确认。如果用户希望大规模定期监控,建议改用计划任务 CLI(scraperapi-cli)或 DataPipeline,而不是每次检查都通过此技能消耗额度。
阶段 4 — 比较和分类
对于每个目标,计算其与基准值的差值。将其归为以下状态之一——为变更统一使用标签,可以让报告更易于阅读:
| 状态 | 条件 |
|---|---|
unchanged | 价格在基准值的 ±0.5% 范围内 |
decreased | 当前价格比基准值低 0.5% 以上 |
increased | 当前价格比基准值高 0.5% 以上 |
restocked | 基准价格为 null,当前价格为数字 |
out_of_stock | 基准价格为数字,当前价格为 null |
new | 基准中完全没有该项 |
removed | 基准中有该项,但目标返回 404 |
failed | 重试后仍发生网络/API 故障 |
threshold_hit | 用户指定了 "低于 $X 时提醒",且当前价格 ≤ X |
如果用户给出了明确的提醒阈值(例如,“如果 AirPods 降到 $200 以下就告诉我”),请检查当前价格是否达到阈值,并在报告顶部醒目列出 threshold_hit 项——这是用户最关心的问题。
阶段 5 — 生成报告
使用 assets/price-report-template.md 作为结构来呈现结果。按状态分组,并按变更的重要程度排序:达到阈值 → 降价 → 重新有货 → 缺货 → 涨价 → 新增 → 未变化 → 失败。
每行包含:
- 产品标识符(ASIN、URL 或查询内容)
- 标题(来自响应,方便用户识别商品)
- 基准价格 → 当前价格(注明货币和日期)
- 差值(同时列出绝对值和百分比)
- 商品页面的直接链接
最后用一行总结:“12 个商品中有 6 个价格发生变化。最大降幅:AirPods Pro 2,下降 15%($249 → $211)。1 个商品缺货。1 个商品检查失败。”
阶段 6 — 提议更新基准值
呈现报告后,询问用户是否要用新价格更新基准文件。如果用户同意,则写入新的 JSON;通过合并而非覆盖来保留用户添加的字段(例如 notes、alert_below)。如果用户不同意,则保持文件不变。
如果这是首次采集,确认后务必写入基准值——否则下次调用时将没有可供比较的数据,整个流程就失去了意义。
停止条件
此技能只运行一次,生成报告后即停止。它不会循环运行或自行安排任务。如果用户需要定期监控:
- 每隔几小时临时重新检查:让用户重新运行提示词。
- 每晚通过 cron 运行:让用户使用
scraperapi-cli生成脚本。 - 完全托管的定时任务和存储:引导用户前往 ScraperAPI 控制面板中的 DataPipeline(https://dashboard.scraperapi.com/)。
绝不要启动后台监控程序或编写轮询代码——这超出了此技能的范围,而且每次运行都会消耗用户的额度,未经用户明确同意不得如此操作。
反面做法
- 当存在结构化端点时,仍抓取原始 HTML。 Amazon/Walmart/Google 的结构化端点正是为了避免解析价格标记而提供的。请使用这些端点。
- 默认使用某种货币却不作说明。 报告中始终保留响应中的货币代码。如果商品页面使用的是加元,那么将价格读作“$1,299”就是错误的。
- 跨国家/地区比较。 如果基准值的
country=us,而当前值的country=gb,则比较的是不同的商品页面——请拒绝比较,并询问用户要使用哪个国家/地区。 - 默认覆盖基准值。 基准值是用户的真实记录;只有在用户明确确认后才能修改。
参考文件
references/structured-endpoints.md—amazon/product、walmart/product和google/shopping的确切参数名称、国家/地区代码以及已知响应字段。开始运行时,请先阅读此文件,再发送第一个请求。assets/price-baseline-template.json— 基准文件的结构。assets/price-report-template.md— 变更报告的 Markdown 框架。
如需深入了解端点行为,请将用户引导至公开文档:https://docs.scraperapi.com/。