盯住闲鱼上你感兴趣的关键词:价格符合预期、品相达标、性价比高的商品会自动收录,并推送到你的微信或企业微信。 AI 品相筛选、卖家信用、降价重推、本地开源——一个面向中文二手市场的个人盯价工具。
本地单进程应用:FastAPI + SQLite + Playwright + LLM,一条命令启动,数据和 Cookie 只存在你自己电脑上。
核心能力
- 关键词盯价:每个监控任务可设关键词、价格区间、排除词与品相要求,定时扫描闲鱼新上架商品
- 三阶段 AI 筛选:需求匹配(文本)→ 品相分析(看图,1-10 分)→ 本批横向性价比对比,标出「本批最优」
- 降价重推:价格变化触发重评,满意度提高才再次推送并标明「价格更新重推」,无变化不打扰
- 卖家信用:好评率、卖出件数、信用等级与评价标签(7 天缓存),风险分级随通知提示,只提示不拦截
- 消息通知:Server酱(微信)与企业微信群机器人双通道,可独立开关;站内可查全部推送记录
- 本地安全:一键登录抓 Cookie(免 F12,不保存密码),数据与 Cookie 只存本地 SQLite
细节能力
- 价格下限 + 排除词过滤超低价配件噪音;同名任务互不干扰(商品按 任务id + 外部id 去重)
- 串行任务队列:同一时刻只跑一个任务,任务间间隔 5 分钟,运行超时后自动补跑
- 更新重评估、多规格价格区间、连续 3 轮未见标记「已下架」
- 任务/商品详情页:改参数、看运行统计、价格走势、通知历史,支持手动「重新分析」
- 命中列表排序/筛选/加载更多、商品与卖家拉黑、控制台分步日志
- 评分公式:需求 40 + 品相 30 + 性价比 20 + 卖家 10(视觉关闭自动切换为 需求 50 + 性价比 30 + 卖家 20,较首见降价有加成)
- 视觉模型可选:未配置时跳过品相分析并注明;分析失败不拦截(宁多勿漏)
要求:已安装 conda 与 Git。
git clone https://github.com/Comui520/second-eye.git
cd second-eye
conda env create -f environment.yml
conda run -n good-price python -m playwright install chromium
conda run -n good-price python -m goodprice浏览器打开 http://127.0.0.1:8000,三步上手:
- 设置 → 一键登录:弹出浏览器窗口登录闲鱼,自动抓取 Cookie(也可手动粘贴)
- 设置 → 大模型:填入智谱免费模型(见下)或其它 OpenAI 兼容服务
- 监控任务 → 新建任务:填关键词、价格区间、排除词与品相要求;任务会立即执行第一次
阶段一「需求匹配」使用现有 LLM 配置;阶段二「品相分析」需要视觉模型。推荐全部使用智谱免费模型:
- 文本(需求匹配):GLM-4.7-Flash(免费):Base URL
https://open.bigmodel.cn/api/paas/v4,模型 IDglm-4.7-flash - 视觉(品相分析):GLM-4.6V-Flash(免费):模型 ID
glm-4.6v-flash,支持图片与视频输入;高峰期可能限流,工具会自动重试。备选glm-4.1v-thinking-flash(免费,响应更稳定) - 模型 ID 必须小写;其他视觉模型我们未实际使用过,暂不做推荐
未配置视觉模型或关闭「视觉品相分析」开关时,品相分析会被跳过并在通知中注明,评分自动切换为「需求 50 + 性价比 30 + 卖家 20」。
推荐方式:一键登录(免 F12)
- 打开本工具的「设置」页,点击「一键登录」
- 程序会弹出一个浏览器窗口,像正常上网一样扫码或用账号密码登录闲鱼(密码只输入在淘宝/闲鱼官方登录页,程序不保存密码)
- 登录成功后程序自动抓取 Cookie 并保存;登录态保存在本地,下次可能免登录
手动方式
- 用浏览器(建议 Chrome/Edge)登录 https://www.goofish.com
- 按
F12打开开发者工具 → Network(网络)面板 - 刷新页面,任选一个请求,在 Headers 里找到
Cookie字段,整段复制 - 粘贴到本工具的「设置」页面(或写入
.env的XIANYU_COOKIE)
Cookie 会过期,过期后工具会记录错误提示,重新登录即可。
应用消息需要可信域名/回调 URL,家庭用户配置困难;群机器人只需一个 Webhook,无需域名和 IP 白名单:
- 在企业微信里建一个群(自己拉自己即可),群设置 → 群机器人 → 添加机器人
- 复制机器人 Webhook 地址,填入本工具「设置」页 →「消息通知」→「群机器人 Webhook」,并确认开关已勾选
- 限制:每个机器人 20 条/分钟;消息发到企业微信群,手机装企业微信 App 即可收到通知
- 数据来源:商品详情页卖家区块(好评率、卖出件数、信用等级)+ 卖家主页「信用及评价」标签(好评数、评价标签统计)
- 缓存:每个卖家 7 天内只抓一次,避免频繁请求
- 风险分级:好评率 ≥98% 或「信用极好」→ 低;≥90% → 中;否则高;数据不足 → 未知
- 策略:风险只出现在通知和页面徽标中(绿/黄/红),不会拦截通知
所有配置都可以在 Web 界面的「设置」页修改,并持久化到数据库;.env 中的值作为默认值。
| 配置项 | 说明 |
|---|---|
XIANYU_COOKIE |
闲鱼登录 Cookie(推荐用「一键登录」获取) |
LLM_BASE_URL |
OpenAI 兼容服务地址,如 https://open.bigmodel.cn/api/paas/v4(智谱) |
LLM_API_KEY |
大模型 API Key |
LLM_MODEL |
模型名,阶段一需求匹配使用(推荐智谱 glm-4.7-flash,免费,小写) |
VISION_BASE_URL / VISION_API_KEY / VISION_MODEL |
阶段二视觉模型(推荐智谱 glm-4.6v-flash / glm-4.1v-thinking-flash,免费,小写);不填则跳过品相分析 |
SERVERCHAN_SENDKEY |
Server酱 SendKey(https://sct.ftqq.com),留空则只写日志 |
WECOM_WEBHOOK |
企业微信群机器人 Webhook(推荐,无需域名/IP) |
SERVERCHAN_ENABLED / WECOM_ROBOT_ENABLED / VISION_ENABLED |
三个独立开关,默认开启 |
PROXY |
可选 HTTP 代理,如 http://127.0.0.1:7890 |
DEFAULT_CRAWL_INTERVAL_MINUTES |
默认抓取间隔(分钟) |
DEFAULT_CRAWL_JITTER_MINUTES |
请求随机抖动(分钟),降低风控概率 |
- Cookie 过期了怎么办? 设置页重新「一键登录」即可;任务出错时黑窗和任务详情页会写明原因。
- 为什么有些商品没有品相分/性价比? 品相分析需要视觉模型且有有效商品图;失败会「宁多勿漏」放行,详情页会注明原因,可点「重新分析」补跑。
- 免费视觉模型限流怎么办?
glm-4.6v-flash高峰期可能返回 429,工具会自动重试;仍失败可临时切换glm-4.1v-thinking-flash。 - 两个任务关键词一样会冲突吗? 不会,商品按任务独立记录与通知,互不干扰。
- 搜索总超时或结果不对? 先检查 Cookie 是否过期、代理是否可用;错误信息会写清楚是登录失效、页面改版还是网络问题。
conda run -n good-price pytest -v单进程一体化:FastAPI 提供 Web 界面与 JSON API,APScheduler + 串行任务队列调度抓取,SQLAlchemy + SQLite 持久化。
goodprice/crawler/:平台适配器协议 + 闲鱼 Playwright 适配器 + HTML 解析 + 一键登录(选择器集中维护,平台改版只改适配器)goodprice/analysis/:OpenAI 兼容 LLM 客户端与品相/性价比提示词goodprice/notify/:通知通道协议(日志、Server酱、企业微信群机器人;可扩展邮件/钉钉)goodprice/services/:设置服务(env 默认值 + 数据库覆盖)、任务服务、核心爬取流水线、串行任务队列goodprice/web/:Jinja2 + HTMX + Tailwind(CDN)页面与路由
- 本工具仅供个人学习与研究使用,请遵守闲鱼及相关平台的服务条款。
- 使用自己账号的登录态、控制抓取频率(默认带随机抖动),风险自负。
- 本项目不存储、不上传任何第三方平台的账号密码;Cookie 仅保存在本地数据库中。
- 若因使用本工具产生账号限制或其它问题,作者不承担任何责任。
- 转转等平台适配器
- 单品盯价(收藏链接盯降价/下架)
- 邮件、钉钉/飞书通知通道
- 价格走势图表
- Docker 一键部署
- 商品视频解析(
glm-4.6v-flash支持视频输入,可作为后续增强)