【More Than Coding】用 SOLO 10 分钟搭了一套竞品监控系统,从此告别手动截图的苦日子

【More Than Coding】用 SOLO 10 分钟搭了一套竞品监控系统,从此告别手动截图的苦日子

一、摘要

作为一名产品经理实习生,我每天要盯着京东服务市场上 12 个竞品的价格、评分、活动变化,原本每天手动截图+整理要花 2-3 小时。用 TRAE SOLO 搭了一套自动监控系统后,现在只需一条命令,15 分钟搞定全部采集和报告生成。数据更准、覆盖更全,还能自动检测变化趋势——我终于有时间摸鱼了(划掉)做更有价值的事了。

二、背景

我是谁

一名产品经理实习生,在京东服务市场团队实习。日常工作中有一项"必修课":每天做竞品监控报告

我的工作痛点

说出来都是泪:

  • :tired_face: 每天手动打开 12 个竞品页面,逐个点击版本×周期组合记录价格(有的竞品 4 个版本 × 5 个周期 = 20 个组合!)
  • :tired_face: 经常漏记某个组合的价格,或者把 ¥11 记成 ¥110
  • :tired_face: 报告格式每次都不一样,被导师说"你上次和这次的数据对不上"
  • :tired_face: 竞品悄悄降价了 1 块钱,我根本发现不了
  • :tired_face: 没有历史数据对比,看不出趋势

总结:我是一个人形爬虫,但比爬虫慢,还比爬虫容易出错。

三、实践过程

Step 1:任务拆解

我把竞品监控拆成了 4 个子任务:

子任务 说明
:spider: 数据采集 自动打开竞品页面,逐个点击版本×周期,读取价格、评分、已买人数、续订率、活动标签
:floppy_disk: 数据存储 存入 SQLite 数据库,支持历史查询和对比
:magnifying_glass_tilted_left: 变化检测 对比今天和昨天的数据,自动检测价格/指标/活动的变化
:bar_chart: 报告生成 生成可视化 HTML 报告,包含价格矩阵、变化详情、趋势指标

Step 2:技术方案

我完全不懂爬虫和自动化,但 SOLO 帮我搞定了所有技术细节:

  • 采集层:通过 CDP(Chrome DevTools Protocol)连接浏览器,用 JavaScript 自动点击页面元素、读取数据
  • 存储层:SQLAlchemy + SQLite,每次采集自动存库
  • 检测层:自动对比最近两次数据,检测价格变化、可用性变化、指标变化、活动变化
  • 展示层:生成美观的 HTML 报告

Step 3:关键 Prompt 分享

整个开发过程我主要靠对话引导 SOLO 完成,不需要自己写代码。以下是一些关键的 Prompt:

“帮我写一个 Python 脚本,通过 CDP 协议连接浏览器,打开京东服务市场竞品页面,自动点击版本和周期选项卡,采集所有组合的价格”

“对比今天和昨天的采集数据,检测哪些竞品的价格、评分、活动发生了变化”

“生成一个可视化的 HTML 报告,展示所有竞品的当日数据和变化详情”

“把这个功能打包成一个 Skill,支持中文命令行操作,并加入定时任务”

“价格不要四舍五入,保留2位小数,整数不显示.00”

“折扣只有标’惠’的才有,不能仅凭有两个价格就判断”

“某版本一年价格读不到,帮我调试一下”(踩坑实录)

Step 4:踩坑实录(含泪量极高)

开发过程中踩了不少坑,SOLO 帮我一个个解决了:

问题 现象 解决方案
点击后未选中 版本×周期点击了但没生效,读到残留价格 增加点击后验证机制,检查 is-check 状态
不同页面结构 有的竞品用 /main/detail/,有的用 /market/new/detail/,价格元素不同 兼容两种页面结构,自动回退到通用选择器
折扣误判 页面上有两个价格就显示折扣,但实际没有"惠"标签 改为只有带"惠"标签的组合才标记折扣
最后一个组合读不到 最后一个版本×最后一个周期,无法"先切换再切回" 增加 already-selected 分支,已选中直接跳过
价格被四舍五入 ¥1.5 显示成 ¥2 用 Decimal 向下截断,整数不显示 .00
表头和数据错位 HTML 表头硬编码顺序和数据不一致 改为动态生成表头,与数据顺序一致
首次采集不显示 新竞品只有1次记录,不满足"至少2次"的条件 改为所有竞品都展示,首次采集显示完整价格矩阵

每一个 bug 的修复过程都是:发现问题 → 把错误信息贴给 SOLO → SOLO 分析原因并修复 → 我验证。全程不需要自己写代码。

四、成果展示

4.1 系统架构

最终系统由 3 个核心文件组成:

competitor_monitor_skill/
├── skill.md        # Skill 描述文档
├── run.py          # 主执行脚本(6 个核心功能)
└── schedule.sh     # 定时任务管理脚本

4.2 命令行操作(全中文!)

python3 run.py 采集 "https://fw.jd.com/..."    # 添加新竞品
python3 run.py 批量采集                        # 采集所有竞品
python3 run.py 列表                            # 查看竞品列表
python3 run.py 报告 <商品名称>                 # 生成单个竞品报告
python3 run.py 每日报告                        # 生成监控+变化报告
python3 run.py 每日执行                        # 一键采集+生成报告

4.3 终端采集效果

批量采集 12 个竞品时的终端输出(每个竞品自动遍历所有版本×周期组合):

[1/12] ✅ 京东店铺A_营销 | 评分4.7 已买30000 续订率4.05%
[2/12] ✅ 京东店铺B_营销 | 评分5.0 已买60000 续订率32.43%
[3/12] ✅ 京东店铺C_营销 | 评分5.0 已买2000 续订率34.21%
...
[12/12] ✅ 京东店铺L_营销 | 评分4.7 已买40000 续订率11.36%

4.4 每日竞品变化监控报告

系统自动生成的每日监控报告,包含三大板块:

:money_bag: 版本×周期价格变化 — 详细展示每个变化的价格组合

:chart_increasing: 核心指标变化 — 评分、已买人数、续订率的波动

:new_button: 首次采集的竞品 — 展示完整价格矩阵

4.5 单个竞品详细报告

每个竞品都有独立的详细报告,包含评分详情、评价分布、价格矩阵、服务商信息、活动标签、最新评价等:

4.6 监控数据一览(12 个竞品)

竞品 评分 已买 续订率
京东店铺A_互动引流_下单抽奖 4.9 390,000+人 10.42%
京东店铺B_客户运营_CRM精准短信 4.9 90,000+人 16.33%
京东店铺C_云短信CRM_一站式会员营销 5.0 60,000+人 32.43%
京东店铺D_CRM短信催付_会员运营 4.9 50,000+人 27.27%
京东店铺E_互动营销超级涨粉 4.7 40,000+人 11.36%
京东店铺F_区域折扣_水印短信拼购 4.8 40,000+人 50.0%
京东店铺G_会员互动 4.7 30,000+人 4.05%
京东店铺H_CRM会员精准洞察营销 4.9 30,000+人 10.34%
京东店铺I_精准短信_会员全链路运营 5.0 20,000+人 16.67%
京东店铺J_会员互动营销_抽奖签到 4.8 8,000+人 17.24%
京东店铺K_抽签抽奖定时开奖 4.7 3,000+人 9.09%
京东店铺L_互动营销_智能奖品锁权 5.0 2,000+人 34.21%

五、效果与总结

提效数据

指标 使用 SOLO 前 使用 SOLO 后
每日采集时间 2-3 小时 约 15 分钟(自动化)
竞品覆盖数 3-4 个(手动限制) 12 个(全量覆盖)
价格组合记录 容易漏记 100% 完整记录
变化发现 依赖人工观察 自动检测 + 高亮提示
历史对比 无法实现 支持任意时间段对比
报告格式 手动整理 Excel 自动生成 HTML 报告

总结与思考

  1. AI 不是替代产品经理思考,而是替代重复劳动。 我仍然需要判断哪些竞品值得监控、如何解读变化趋势,但采集和整理的工作完全交给了 AI。这让我有更多时间去分析数据背后的含义,而不是当一个人形爬虫。

  2. 对话式开发的效率非常高。 我不需要写代码,只需要清晰地描述问题和需求,SOLO 就能理解并实现。遇到 bug 时,直接把错误信息贴给它就能修复。整个过程就像和一个很靠谱的技术同事合作。

  3. 分步验证很重要。 每次采集完成后我都会检查数据是否准确,发现了很多边界情况(如某些版本的免费试用周期不可用、不同页面结构的价格元素不同等),逐步优化后数据准确率达到 100%。不要盲目信任 AI 的输出,验证是产品经理的基本功。

  4. 这套系统完全可以复用到其他电商平台的竞品监控场景,只需要调整页面选择器即可。如果你也是被竞品报告折磨的产品/运营同学,欢迎交流!


工具:TRAE SOLO + CDP 浏览器自动化 + Python
标签:#MoreThanCoding #竞品监控 #产品经理 #AI提效