个跑在卡淘(cardhobby.com.cn)页面上的小工具:在卡淘里搜一张卡,点一下按钮,就告诉你这张卡近期成交在什么价位。
它解决什么问题
在卡淘上看某张卡的行情,通常得自己一页页翻已售记录,用眼睛记价格,还得区分竞拍和一口价、还得手动抠掉运费。这个扩展把这套动作自动化:
- 直接读站内已售列表接口,拿真实成交价
- 成交价不含运费(用的是卡片大字价格字段,运费是另一个字段)
- 自动分 全部 / 一口价 / 竞拍
- 给出样本数、平均价、中位数、最高价、最低价
- 明细可导出 CSV,也支持把 CSV 导回来继续统计
1. 背景
卡淘查一张卡的成交价只能手翻"已售"列表:口径混乱(竞拍/一口价混杂)、运费干扰、无法快速得到价格区间。
2. 目标
在搜索结果页一键获得该关键词的成交价画像(近 1 月 / 近 3 月),支持导出明细。用户:买前查行情、卖前定价。
非目标:不做交易、不批量爬站、不做提醒、不做服务端。
3. 方案
Chrome MV3 扩展,内容脚本用同源 Cookie 直调站内接口 SearchCommodity;UI 挂 Shadow DOM;缓存存 chrome.storage.local。
分层:api.js(站点适配,改版只改此文件)/ stats.js(清洗统计)/ content.js(交互状态)。
4. 功能
| # | 需求 | 优先级 |
|---|---|---|
| F1 | 页面悬浮按钮开合统计面板 | P0 |
| F2 | 关键词自动读取(兼容 %uXXXX 解码),URL 优先 |
P0 |
| F3 | 已售出 / 出售中两种范围 | P0 |
| F4 | 近 1 月 / 近 3 月:样本数、平均、中位、最高、最低 | P0 |
| F5 | 全部 / 一口价 / 竞拍分组 | P0 |
| F6 | 成交价不含运费 | P0 |
| F11 | 默认拉 1 页,手动"再翻一页"累加;<60 条或 80 页终止 | P0 |
| F7 | 成交明细列表,可跳详情页 | P1 |
| F8/F9 | CSV 导出 / CSV、JSON 导入合并去重 | P1 |
| F10 | 本地缓存,离线可看 | P1 |
| F12 | 覆盖度提示(是否需再翻页) | P1 |
| F13 | 跟随页面切词自动重置 | P1 |
| F14 | 清空缓存同时重置关键词记忆 | P2 |
未做:自动翻页覆盖 3 个月、价格走势图/提醒。
5. 字段口径(锁死)
| 含义 | 字段 | 说明 |
|---|---|---|
| 商品 ID | ID |
去重主键 |
| 成交价 | LowestPrice |
不含运费 |
| 运费 | NewPostageMoney |
仅展示 |
| 成交时间 | EffectiveDate |
兼容多种格式 |
| 交易方式 | ByWay |
1=一口价,2=竞拍 |
筛选:Status=-2 已售 / 1 在售;排序按结束时间倒序。
有效记录:价格>0 且时间可解析,按 ID 去重(后到覆盖先到)。
6. 非功能
串行请求、翻页间隔 500ms,不并发不自动无限翻;数据只存本地;仅申请 storage 权限、仅注入 cardhobby 域;接口异常区分"未登录"与"无数据"。
7. 已知风险
- 一口价样本未验证,
LowestPrice在ByWay=1下含义待确认 - 站点已售列表约 5000 条上限,
TotalCount不可靠 - 依赖登录 Cookie,未登录不可用
- 站点改版需改
api.js

