关于 res-price-compare
用于在波兰开展商品价格研究的 Claude Code 技能,采用多轮搜索与核验流程。除比较报价外,还检查库存、运费、保修条款及 B2B 信息,并可按需导出报告。
主要功能
- 01五轮商品价格研究
- 02核验商店页面价格与库存
- 03检查运费和保修条款
- 04分析 B2B 与经销商信息
- 05按需导出 TXT、XLSX 和 HTML
适用场景
- 01购买前比较波兰商店报价
- 02核算含配送费用的总价
- 03评估企业采购的保修条款
- 04导出价格比较报告
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ molechowski/ claude-skills --skill res-price-compare安装后在 Claude Code 中输入/res-price-compare确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/export-formats.mdpolish-market.mdwarranty-guide.md详细介绍
价格比较 — 波兰市场
针对波兰电商市场进行 5 轮迭代式产品价格调研,并核实保修、运费及 B2B 信息。
**重要:**启动时加载 references/polish-market.md — 其中包含商店数据库、价格比较网站和搜索模式。
架构
| 工具 | 用途 | 费用 |
|---|---|---|
WebSearch | 搜索商店、价格和优惠 | 免费 |
WebFetch | 在商店页面上核实价格(主要方式) | 免费 |
scrapling | 针对阻止 WebFetch 的网站的备用方案 | 免费 |
不使用 xAI — 价格比较不需要 X/Twitter。
要求
无需外部依赖。该技能使用 Claude Code 内置工具运行。
可选依赖:
scrapling— 针对阻止 WebFetch 的网站的备用方案(403、验证码、空响应)。安装:uv tool install 'scrapling[all]'uv— 用于运行uv run --with openpyxl python3 -c "..."以导出 XLSX
工作流概览
| 步骤 | 操作 | 目的 |
|---|---|---|
| 1 | 解析查询 | PRODUCT、BUYER_TYPE、CATEGORY |
| 2 | 第 1 轮:发现 | Ceneo、Allegro、Amazon.pl、综合商店和专业商店 |
| 3 | 差距分析 | 缺少的商店、未核实的价格、缺失的数据 |
| 4 | 第 2 轮:WebFetch 商店 | 确认价格、库存水平和运费 |
| 5 | 第 3 轮:保修和运费 | 核实保修类型和配送费用 |
| 6 | 第 4 轮:B2B 和经销商 | B2B 门户、官方经销商、法定保修 |
| 7 | 第 5 轮:最终核实 | 重新核查最低价、库存和优惠券 |
| 8 | 综合整理 | 比较表、建议和摘要 |
| 9 | 导出 | 按需导出 TXT、XLSX、HTML |
| 10 | 专家模式 | 根据缓存回答,不进行新的搜索 |
WebFetch 与 Scrapling 备用方案
此技能中的每次 WebFetch 调用都遵循两级模式:
-
首先尝试 WebFetch(快速,无文件 I/O):
WebFetch(url, prompt) -
如果 WebFetch 失败(403、内容为空、验证码页面或响应被阻止),则使用 cli-web-scrape 中的自动升级协议重试:
scrapling extract get "URL" /tmp/scrapling-fallback.md→ 读取 → 验证内容- 如果内容过少(仅含 JS 的外壳、无数据,或大多是导航链接)→
scrapling extract fetch "URL" /tmp/scrapling-fallback.md --network-idle --disable-resources→ 读取 → 验证 - 如果仍被阻止 →
scrapling extract stealthy-fetch "URL" /tmp/scrapling-fallback.md --solve-cloudflare - 所有级别均失败 → 跳过该商店并标记为“scrapling blocked”
用于检测响应被阻止或内容过少的启发式规则:
- HTTP 403 或响应中包含“access denied”
- 响应正文为空,或仅包含导航/ Cookie 横幅
- 响应包含验证码挑战(reCAPTCHA、hCaptcha、Cloudflare 挑战页面)
- 响应是“please enable JavaScript”页面或禁用 JS 的警告
- HTTP 200,但没有价格、规格或产品名称 — 只有导航链接和页脚(由 JS 渲染的 SPA)
如果未安装 scrapling,则恢复原始行为:跳过该商店并标记为“WebFetch blocked”。
步骤 1:解析查询
从用户查询中提取:
1a. PRODUCT
要搜索的产品名称。包括型号、变体和部件编号。
1b. BUYER_TYPE
| 类型 | 判定方式 | 影响 |
|---|---|---|
| B2C | “家用”、“个人”,或未说明 | 24 个月法定保修 + 自愿保修 |
| B2B | “公司用”、“增值税发票”、“商业”、“B2B” | 可能不适用法定保修,制造商保修至关重要 |
**默认值:**B2B(较安全的假设 — 会触发更全面的分析)
1c. 类别
根据产品名称自动检测。从 references/polish-market.md 加载相应的专业商店列表:
| 类别 | 检测模式 | 示例 |
|---|---|---|
| VoIP/电话 | Yealink、Grandstream、Fanvil、SIP、DECT、VoIP | Yealink W76P |
| IT/网络 | MikroTik、Ubiquiti、交换机、路由器、AP、防火墙 | MikroTik hAP ax3 |
| 电子产品 | 显示器、笔记本电脑、计算机、打印机、平板电脑 | Dell U2723QE |
| 办公用品 | 椅子、办公桌、碎纸机、投影仪 | Ergohuman Elite |
| 通用 | (无匹配项) | Nespresso Vertuo |
第 2 步:第 1 轮 — 搜索
查询生成
并行生成 6-8 个查询:
- Ceneo:
site:ceneo.pl "{PRODUCT}" - Allegro:
site:allegro.pl "{PRODUCT}" - Amazon.pl:
site:amazon.pl "{PRODUCT}" - 一般价格:
"{PRODUCT}" cena kupić - 专业商店:
"{PRODUCT}" sklep(来自类别列表) - 比价网站:
"{PRODUCT}" porównanie cen - 评价:
"{PRODUCT}" opinie recenzje - B2B:
"{PRODUCT}" dystrybutor hurtownia(如果 BUYER_TYPE = B2B)
并行执行
同时运行所有 WebSearch 查询(并行工具调用)。
第 1 轮后的内部笔记
记录(仅供内部使用,不要放入输出):
SHOPS_FOUND: [list of shops with prices]
SHOPS_MISSING: [from references/polish-market.md, not found]
PRICES_TO_VERIFY: [prices from snippets — need WebFetch]
WARRANTY_TO_CHECK: [shops without warranty type info]
LEADS: [URLs worth checking via WebFetch in Round 2]
第 3 步:差距分析
第 1 轮后,进行差距分析:
| 差距 | 检查项 | 操作 |
|---|---|---|
| 没有比价数据 | 我们有 Ceneo 数据吗? | 如果没有 → WebFetch ceneo.pl |
| 没有专业商店 | polish-market.md 中该类别的商店有多少家? | 搜索缺失的商店 |
| 价格仅来自摘要 | 是否有通过 WebFetch 确认的价格? | 计划对排名前 10 的结果进行 WebFetch |
| 没有保修信息 | 有多少家商店提供保修类型信息? | 计划核实 |
| 没有配送信息 | 有多少家商店提供配送费用信息? | 计划对配送页面进行 WebFetch |
| 没有市场平台数据 | 是否检查过 Allegro / Amazon? | 添加查询 |
规划第 2 轮
选择排名前 8-12 的 URL,使用 WebFetch 进行核实。优先级:
- 最便宜的报价(价格核实)
- Ceneo(一次列出多家商店)
- 没有价格的专业商店
- 包含保修信息的页面
第 4 步:第 2 轮 — 使用 WebFetch 检查商店
规则
- 切勿重复第 1 轮的查询
- 使用 WebFetch 检查具体产品页面——而不是首页
- 并行执行——同时运行 4-6 个 WebFetch
- 本轮最多运行 8-12 个 WebFetch
执行
对列表中的每个 URL,应用 WebFetch with Scrapling Fallback 模式:
WebFetch(url, "Podaj: 1) dokładną cenę brutto, 2) dostępność/stan magazynowy,
3) koszty wysyłki, 4) informacje o gwarancji (producenta czy sprzedawcy)")
如果 WebFetch 返回 403、空内容、CAPTCHA 或被阻止的响应,请遵循自动升级协议(HTTP → 验证内容 → Dynamic → Stealthy)。从 scrapling 输出中提取相同的数据点。
如果 Ceneo 可用,首先使用 WebFetch 检查 Ceneo 页面——它会一次列出多家商店。
置信度更新
| 来源 | 价格置信度 |
|---|---|
| WebSearch 摘要 | 低——价格可能已过时 |
| Ceneo 列表 | 中——聚合信息,但可能有延迟 |
| 商店页面的 WebFetch | 高——已直接确认 |
| 商店页面的 Scrapling 回退 | 高——已直接确认(与 WebFetch 相同) |
第 5 步:第 3 轮 — 保修和配送
目标
对每家商店,确认:
- **保修类型:**制造商 / 分销商 / 卖家 / 未知
- **配送费用:**快递、Paczkomat、自提柜、免运费(门槛)
- **配送时间:**24 小时、48 小时、订购后
保修信息查找位置
- 产品页面——“Gwarancja”(保修)或“Informacje dodatkowe”(其他信息)部分
- 商店服务条款——搜索“gwarancja”、“gwarant”、“rękojmia”
- 保修卡——规格中的 PDF 或说明
- WebSearch:
site:{shop} gwarancja或site:{shop} regulamin
保修分类
| 指标 | 类型 |
|---|---|
| "gwarancja producenta","producent: [brand]" | MANUFACTURER |
| "gwarancja dystrybutora",经销商名称作为担保方 | DISTRIBUTOR |
| "gwarantem jest [shop name]","gwarancja [shop]" | SELLER |
| 无信息 | UNKNOWN |
如果需要深入分析 B2B 或法定保修,请加载 references/warranty-guide.md。
运费
使用 WebFetch with Scrapling Fallback 模式,获取排名前 10 家商店的“Dostawa”(配送)或“Wysyłka”(发货)页面:
WebFetch(shipping_url, "Podaj wszystkie opcje dostawy z cenami:
kurier, Paczkomat, Poczta Polska, odbiór osobisty, darmowa wysyłka (od jakiej kwoty)")
如果响应被拦截,请遵循自动升级协议(HTTP → 验证内容 → Dynamic → Stealthy),并从 scrapling 输出中提取配送选项。
Step 6:第 4 轮 — B2B 和经销商
目标
- 识别该品牌在波兰的官方经销商
- B2B 门户 — 批发价格、商务条款
- B2B 法定保修 — 商店是否对企业排除法定保修
查询
WebSearch: "{BRAND} dystrybutor Polska"
WebSearch: "{BRAND} importer Polska"
WebSearch: "{BRAND} autoryzowany sprzedawca"
WebSearch: "{PRODUCT}" site:ab.pl OR site:action.pl OR site:also.pl
B2B 法定保修验证
针对价格最低的前 5 家商店,应用 WebFetch with Scrapling Fallback 模式:
WebFetch(terms_url, "Czy regulamin wyłącza rękojmię dla przedsiębiorców?
Szukaj: Art. 558 KC, wyłączenie rękojmi, przedsiębiorca, firma")
如果响应被拦截,请遵循自动升级协议(HTTP → 验证内容 → Dynamic → Stealthy),并在 scrapling 输出中查找排除法定保修的条款。
分销链
建立以下链路:制造商 → 波兰进口商 → 经销商 → 零售商 → 客户
记录每家经销商的以下信息:
- 公司名称
- 角色(进口商 / 经销商 / 授权零售商)
- 网站
- 服务联系信息(如有)
Step 7:第 5 轮 — 最终验证
目标
综合前进行最终验证。仅验证,不发现新商店。
检查清单
- 重新检查价格最低的前 3 家 — 再次使用 WebFetch,价格可能已变动
- 库存 — 产品是否有货(而非“需订货”)
- 优惠券/促销 —
"{PRODUCT}" kupon zniżka promocja - Allegro 上的替代报价 — 检查来自不同卖家的 2-3 个报价
- 比较 Allegro 与直接从商店购买 — 价格、保修、安全性
预算
本轮最多使用 6-8 次 WebFetch。
Step 8:综合整理
主表格
按总价(价格 + 最低运费)排序:
# | Shop | Gross Price | Shipping (cheapest) | Price+Shipping | Mfr. Warranty | Availability
--+--------------------+-------------+---------------------+----------------+-------------------+------------------
1 | shop.pl | 489.00 PLN | InPost courier 12 | 501.00 PLN | YES — service.pl | Yes (1987 pcs)
2 | morele.net | 496.30 PLN | FREE from 399 PLN | 496.30 PLN | YES — "Manufacturer" | Yes (11 pcs)
保修图例
YES = confirmed manufacturer warranty (verification source)
NO = seller's own warranty (not manufacturer)
? = not verified at source
n/a = no data
报告章节
-
TOP 3 — 已确认提供制造商保修
- 表格:商店、含运费价格、保修、备注
-
完整对比表
- 所有已找到的商店,按价格 + 运费排序
-
Allegro — 报价
- 卖家、价格、制造商保修、链接
-
保修 — 重要发现
- 制造商政策(全球)
- 波兰经销商(延长保修?)
- 波兰的服务中心
- 制造商保修与卖家保修(商店列表)
- B2B:法定保修及其排除情况
-
波兰官方经销商
- 表格:公司、角色、网站
-
产品规格
- 关键技术参数
-
购买建议
- 面向 B2C:推荐前 3 家,包括价格、保修和理由
- 面向 B2B:推荐前 3 家,综合考虑法定保修和制造商保修
- 应避免的选项及原因
可信度指标
为每条信息标注可信度:
| 可信度 | 适用情况 |
|---|---|
| [HIGH] | 通过商店页面上的 WebFetch 或 scrapling 确认 |
| [MEDIUM] | 来自 Ceneo/比价网站或单一来源 |
| [LOW] | 仅来自 WebSearch 摘要 |
Step 9:导出
根据用户请求生成文件:
TXT
定宽列文件,格式与综合整理表格相同。
XLSX
加载 references/export-formats.md,并生成 Excel 电子表格,其中包含:
- 条件着色(绿色 = 制造商保修,红色 = 卖家保修)
- 筛选器和冻结的表头
- 多个工作表(对比、保修、经销商、规格)
HTML
加载 references/export-formats.md,并生成独立 HTML,包含:
- 深色主题、内嵌 CSS
- 报告章节选项卡
- 保修类型的彩色徽标
- 响应式布局
第 10 步:专家模式
交付报告后,切换到专家模式:
- 根据收集的数据回答问题
- 除非用户要求,否则不进行新的搜索
- 比较报价并提供建议
触发新搜索的指令(退出专家模式):
- “再搜索一次……”
- “查找更多关于……的信息”
- “更新数据……”
- “也检查一下……”
参数
始终使用 deep 模式——5 轮,25-40 家商店,20-30 次 WebFetch。
| 参数 | 值 |
|---|---|
| 轮次 | 5 |
| 商店 | 25-40 |
| WebFetch | 20-30 |
约束(应该做 / 不应该做)
应该做:
- 始终从 Ceneo.pl 开始——这是波兰最好的比价平台
- 使用 WebFetch 核实价格——搜索摘要不可靠
- 区分制造商保修和卖家保修——这一点至关重要
- 将运费计入排名——不含运费的价格并不完整
- 搜索在波兰的品牌官方经销商
- 对于 B2B:检查服务条款中是否排除了法定保修
- 并行运行 WebSearch(并行工具调用)
- 引用每条信息的来源(商店 URL)
- 启动时加载
references/polish-market.md
不应该做:
- 不要相信未经 WebFetch 核实的搜索摘要价格
- 不要在比较中漏掉运费
- 不要假定“24 个月保修”就是制造商保修
- 不要重复之前轮次中的查询
- 第 5 轮不要发现新商店——只进行核实
- 单个来源的引用不要超过 125 个字符
- 可以并行执行时,不要按顺序运行查询
错误处理
| 错误 | 解决方法 |
|---|---|
| WebFetch 返回 403/CAPTCHA/空结果 | 遵循 cli-web-scrape 的自动升级协议:HTTP 层级 → 验证内容 → Dynamic 层级 → Stealthy 层级。如果 scrapling 不可用或所有层级均失败,则跳过该商店并标记为“blocked” |
| Ceneo 没有返回结果 | 直接搜索 polish-market.md 中的商店 |
| Allegro 阻止抓取 | 使用 WebSearch site:allegro.pl,不要使用 WebFetch |
| 页面上没有价格 | 标记为“n/a”,并从排名中跳过 |
| 价格冲突(搜索摘要与 WebFetch 不一致) | 始终以 WebFetch 为准(如果 WebFetch 被阻止,则以 scrapling 为准) |
参考资料
references/polish-market.md— 商店和比价平台数据库(始终加载)references/warranty-guide.md— 法定保修与自愿保修、波兰法律、B2B 检查清单references/export-formats.md— TXT/XLSX/HTML 模板及生成说明