面向农产品批发行情的监测分析系统:真实采集北京新发地市场一整年 17 万条逐日挂牌报价,完成字段归一、去重聚合、链式价格指数、品种与产地对比、波动预警对比实验与数据质量报告,支持 12 个月度原始 CSV 在线下载。第 19 套「报刊账本风」界面,涨红跌绿。
视频也可在 B 站视频页 观看
| 编程语言 | Python 3.8 及以上 |
|---|---|
| 后端框架 | Django 4.2 |
| 数据采集 | requests 真实 HTTP 采集 + Scrapy 工程骨架(公开 JSON 接口,低频 + 断点续跑) |
| 数据分析 | pandas 2.0 / NumPy 1.23 |
| 数据库 | MySQL 8.0(交付默认 SQLite,免安装) |
| 可视化 | ECharts 5(已内置本地文件,离线可用) |
| 数据规模 | 170181 条原始报价 / 151790 条入库 / 1024 品种 / 358 天 |
| 操作系统 | Windows / macOS / Linux |
| 启动方式 | 双击一键脚本,或 python manage.py runserver 8084 |
下面是交付包里的真实目录,共 77 个文件。只展示文件名,不含文件内容; 点击文件夹可逐层展开,看到每个模块是怎么拆分的。
点击任意一张可放大,支持左右切换(也可用键盘 ← → 键)











交付的任务书、开题报告与论文均为 Word 文档,下面是真实页面预览;点击可放大并左右切换:



是。通过北京新发地市场公开价格接口真实采集 2025-11-01 ~ 2026-10-31 共 170181 条逐日挂牌报价,12 个月度原始 CSV 随包并在页面可下载。需要注意:这是单一批发市场的挂牌批发价,不是全国均价或零售价,页面与论文均如实标注。
春节休市时报价品种从 240 个骤减到 83~107 个,且停报的多是高价品种,等权均价会假跌约 70%。系统采用固定篮子 + 链式日变动截尾均值法:每个品种先算日涨跌幅,去掉两端各 10% 极端值后取均值再链式累乘,品种进出与量级差异都不影响指数。
农产品挂牌价常连续多日不调价,过半品种日涨跌幅为 0 时中位数会退化成 0,指数变成一条直线。截尾均值既不被 0 淹没,又能抗极端变动,论文表 6-1 给了三种口径的对比。
没有绝对更好。固定 20% 阈值触发 2055 次、次日同向延续率 14.94%;滚动 14 日 90 分位触发 8648 次、延续率 8.00%。自适应阈值更灵敏但误报更多,人工复核场景更适合固定阈值,论文里如实写了这个结论与代理指标的局限。
不同品种价格量级差几十倍,直接比各产地平均报价反映的是品种结构。系统按每个品种自身全年均价作基准计算同品种内偏离率,校正后偏离收敛到 ±20% 以内,结论才可比。
170181 条原始报价、151790 条入库记录、1024 个品种、9 个品类、358 天、12 个月度 CSV(约 13 MB)。改 fetch_prices.py 的 MONTHS 列表可扩到更早年份,接口历史总量超过 80 万条。
能。python3 crawler/fetch_prices.py 补采缺月(已完成自动跳过),再 python3 manage.py import_prices 重建统计库与 findings.json,页面和论文数字会一起更新。
访客无需登录可看全部 8 个分析页面并下载 CSV;管理员通过 Django admin 维护品种、品类、预警规则并查看采集日志(演示账号 admin / admin123456)。
端口占用换 8085;缺依赖执行 pip install -r requirements.txt;图表空白检查 static/vendor/echarts.min.js;导入时 database is locked 先停服务。说明文档第八节给了完整对照表。