影刀RPA 农产品价格监控:批发市场行情自动采集
作者:林焱 | 分类:影刀RPA新手教程 | 难度:★★
什么情况用
做农产品贸易、社区团购、食堂采购的朋友,每天都要盯批发市场价格。北京新发地、广州江南、上海江桥……每家市场都有自己的报价页面,手动切换各城市逐个记录,一上午就没了。
更糟心的是价格波动快——早上7点和11点的报价可能差10%,等你手工整理完已经错过了最佳采购窗口。
用影刀RPA定时从各大批发市场网站采集行情,自动录入Excel并做环比分析,10分钟搞定全天工作。
怎么做
第一步:确定数据源
主流批发市场价格来源:
拼多多店群自动化上架方案
- 北京新发地:xinfadi.com.cn → 蔬菜、水果、肉类每日报价
- 农业农村部:全国农产品批发价格200指数 → pfscnew.agri.gov.cn
- 地方农业信息网:各省有自己的农产品价格发布页面
本教程以新发地为例,其他市场页面结构类似,改URL和XPath即可。
第二步:采集新发地每日报价
影刀操作动作:
- 【打开网页】→
http://www.xinfadi.com.cn/priceDetail.html - 【等待元素】→ 等表格加载完成(class=“table_1”)
- 【获取元素列表】→ 提取所有行数据
- 【循环】→ 遍历每一行获取品名、价格、单位、日期
# 影刀Python节点:清洗和标准化importpandasaspdfromdatetimeimportdatetime# 影刀从网页提取的原始数据price_data=[{"name":"大白菜","low":"0.80","avg":"1.00","high":"1.20","unit":"斤","date":"2026-06-28"},{"name":"黄瓜","low":"1.50","avg":"2.00","high":"2.50","unit":"斤","date":"2026-06-28"},{"name":"西红柿","low":"2.00","avg":"2.60","high":"3.20","unit":"斤","date":"2026-06-28"},]df=pd.DataFrame(price_data)# 统一换算为元/kgdf["low_kg"]=df["low"].astype(float)*2df["avg_kg"]=df["avg"].astype(float)*2df["high_kg"]=df["high"].astype(float)*2df["collect_time"]=datetime.now().strftime("%Y-%m-%d %H:%M")print(df.to_dict(orient="records"))第三步:多市场并行采集
影刀支持流程并行——为每个市场创建独立子流程,同时运行:
| 子流程名称 | 目标网站 | 采集品类 |
|---|---|---|
| 采集北京新发地 | xinfadi.com.cn | 蔬菜、水果 |
| 采集广州江南 | jiangnanmarket.com | 蔬菜、进口水果 |
| 采集农业农村部 | agri.gov.cn | 全国批发价格指数 |
每个子流程采集后写入同一个Excel的不同Sheet,用【启动子流程】并发执行。
第四步:价格环比分析
# 影刀Python节点:对比昨日价格today=[{"name":"大白菜","avg_price":2.0,"date":"2026-06-28"},{"name":"黄瓜","avg_price":4.0,"date":"2026-06-28"},]yesterday=[{"name":"大白菜","avg_price":1.8,"date":"2026-06-27"},{"name":"黄瓜","avg_price":4.5,"date":"2026-06-27"},]# 转dict便于对比yd={item["name"]:item["avg_price"]foriteminyesterday}result=[]foritemintoday:prev=yd.get(item["name"])ifprevandprev>0:change_pct=round((item["avg_price"]-prev)/prev*100,1)flag="↑涨"ifchange_pct>0else("↓跌"ifchange_pct<0else"→平")item["昨价"]=prev item["环比"]=f"{flag}{abs(change_pct)}%"else:item["环比"]="新上市"result.append(item)print(result)第五步:设定定时任务
在影刀中【创建计划任务】:
- 执行时间:每天早上7:00、11:00、16:00(正好赶上早市、午市、晚市报价)
- 通知方式:【企微推送】/【钉钉推送】把价格变动超过5%的品种推送出去
有什么坑
坑1:不同市场单位不一致
TEMU店群如何管理运营?
新发地用"斤",有些南方市场用"公斤",还有按"件"“箱”"筐"报价的。一定要在Python节点统一换算为kg,否则对比出来的价格毫无意义。
坑2:网站反爬越来越严
新发地这类商业价值高的数据源,反爬措施会逐步升级。如果某天突然采集不到数据了,先检查IP是否被拉黑。建议加个【随机延时】指令(2-5秒),别一秒刷10次。
坑3:品种名称不统一
北京叫"马铃薯",广州叫"土豆",系统里可能叫"土豆(马铃薯)“。如果不做名称标准化,环比分析时会漏掉大量数据。建议维护一张"别名映射表”:
ALIAS_MAP={"马铃薯":"土豆","洋芋":"土豆","西红柿":"番茄","蕃茄":"番茄",}坑4:节假日数据缺失
批发市场节假日可能不更新报价。如果连续两天没数据,环比分析脚本会报错。加上空值判断:取最近一次有数据的日期做对比。
坑5:网页改版导致元素失效
批发市场价格页面偶尔会改版。建议每周五手动跑一次流程确认正常。如果发现失败,大概率是页面结构变了,需要重新获取XPath。
总结:农产品价格采集的关键不在技术,而在数据归一化——名称统一、单位统一、时间对齐,这三件事做好,你的数据才有分析价值。