前言
做电商运营、竞品调研、比价选品的时候,我们经常需要持续跟进商品的售价、原价、库存、规格、店铺信息。依靠手动刷新页面复制表格,不仅耗时费力,大促期间价格频繁变动,人工根本跟不上节奏。
很多开发者尝试直接解析网页源码,却踩了一堆坑:网页动态渲染、页面改版后代码直接失效、访问频率高就触发风控拦截,想要完整拿到多规格 SKU、店铺信息、原始标价,往往要耗费大量时间做逆向调试。
今天分享一套落地实践,借助 Open‑Claw 的工具能力,避开复杂逆向工作,快速完成商品信息定时采集、数据持久化存储,实现监控告警与基础数据分析,把整个流程从数据获取、存储到分析完整跑通。
一、业务目标梳理
我们这套小系统要实现 3 个核心能力:
:拿到商品标题、现价、原始标价、库存、多规格 SKU、店铺名称、主图、发货地等全部信息。
定时持续监控:周期性巡检商品,保存每一轮价格、库存快照,捕捉调价、缺货、规格变更事件。
本地数据分析:读取历史采集记录,做价格波动统计,当出现价格暴跌、库存清零时输出告警提示。
说明:本案例以京东商品作为演示对象,只做学习研究,实际使用请遵守平台相关规则。
二、整体实现思路
传统网页采集会把大量精力消耗在页面 DOM 解析、反爬对抗上。Open‑Claw 相当于一个数据中转助手,我们只需要传入商品编号,就可以拿到结构化整理好的商品资料,不受页面改版影响。
整体流程:
配置身份凭证,准备待监控的商品编号列表;
封装数据获取函数,拿到结构化商品原始数据;
将每次采集结果写入本地 JSON 文件,作为历史快照;
循环定时执行采集,对比前后快照,识别价格、库存异动;
读取本地历史文件,完成简单统计分析,输出告警。
三、完整 Python 代码实现
3.1 依赖安装
只需要安装网络请求库,执行下面命令:
3.2 完整源码
四、代码解读与使用说明
配置区域:修改最上方配置,填入你的凭证、需要监控的商品编号,调整轮询间隔,间隔不要设置过小,避免频繁请求。
快照存储:每次采集的完整原始数据会保存到
product_snapshot文件夹,每个商品单独一个子目录,方便后续回溯。异动检测逻辑:对比上一轮快照,识别价格涨跌、库存清零,直接在控制台打印告警;你可以扩展代码,对接邮件、企业微信机器人,实现消息推送。
数据分析模块:读取本地全部历史快照,统计最高、最低、平均价格,完成简单的趋势分析。
注意:示例中的访问地址需要替换为你实际拿到的访问地址,ACCESS_KEY、ACCESS_SECRET 替换为你自己的凭证。
五、拓展方向
拿到结构化数据之后,我们可以继续做很多拓展:
存入数据库:把快照写入 SQLite / MySQL,替代本地 JSON 文件,方便做大规模统计。
可视化图表:结合 pandas + matplotlib,绘制价格随时间变化折线图,直观看到大促期间价格波动。
多商品批量监控:维护一份商品清单文件,批量读取,同时监控几十上百个竞品。
消息通知:当检测到降价、缺货,调用企业微信 / 钉钉 / 邮件接口,把告警推送出来。
六、踩坑记录
轮询间隔不要太小:频繁访问会触发限流,建议至少间隔 15 分钟以上。
价格偶尔返回异常:业务返回的价格字段存在偶尔不准的情况,做分析时可以增加过滤逻辑,过滤 0 或者异常离谱的数值。
商品下架情况:当商品下架,会返回对应错误提示,代码里已经做了捕获,可以自行扩展下架告警。
七、写在最后
这套方案最大的好处,就是我们不用再耗费大量精力处理网页动态渲染、页面改版、反爬拦截的问题,把重心放在业务逻辑:监控、对比、分析、告警。