黄金价格数据链路说明:MCP / 爬虫 / 定时任务 / 网页的关系
背景
之前做了多个与黄金价格相关的功能,容易搞混它们之间的关系。这篇笔记梳理清楚,并延伸到 MCP 的适用场景。
四个组成部分
① gold_price_crawler.py — 数据源头
独立 Python 爬虫脚本(/root/note-center/data/gold/gold_price_crawler.py):
- 使用 requests BeautifulSoup 爬取 huangjinjiage.cn
- 采集国内金价、品牌金价(周大福/周生生等)、水贝批发价
- 用 matplotlib 绘制趋势图
- 写入 latest_report.json、price_history.json
- 通过 Server酱 推送到微信
不依赖 Claude、不依赖 MCP、不依赖 Flask,自己就能跑。
② 定时任务面板(⏰ 定时任务)
Flask 后台线程(cron_scheduler.py),每分钟检查到点任务,用 subprocess 执行命令。
当前预置任务:
- 黄金价格采集 → 每天 09:46 执行 gold_price_crawler.py
- 服务器状态巡检 → 每 30 分钟 curl 本机 /_health
可以在网页上改时间、手动触发、看执行日志。
③ 网页展示(🏆 黄金价格)
路由 /gold,读取 data/gold/latest_report.json 渲染成网页。谁写的文件不重要,文件在就能看。
④ Claude MCP(/gold 技能)
只是一个快捷指令,让我(Claude)帮你跑爬虫 读数据 聊天回复。
演进过程
阶段一:只有爬虫 系统 crontab → 想看金价得 SSH 进去看文件
阶段二:加了 MCP(/gold 技能)→ 在聊天里输 /gold 就能让我帮你跑爬虫并告诉你结果。当时说 MCP 比爬虫快,是指在聊天场景下即时获取数据
阶段三:加了网页展示 → 浏览器打开 🏆 黄金价格 就能看,数据由定时爬虫写入
阶段四:加了定时任务面板 删除系统 crontab → 统一在网页管理所有定时任务,不再依赖系统 crontab,执行记录可视化
为什么现在不靠 MCP 了
之前的链路(聊天场景):
你 → 新 /gold → 我通过 MCP 爬网站 → 告诉你结果
现在的链路(网页场景):
每天 09:46 爬虫自动跑 → 数据写入 latest_report.json → 你打开网页直接读文件
MCP 解决的是"聊天中即时查数据"的问题。定时面板 网页解决的是"数据提前备好,打开就能看"的问题。两者不冲突,只是使用方式变了。数据采集从始至终都是 gold_price_crawler.py 独立完成的,MCP 从未参与过数据采集。
MCP 什么时候还有用
虽然 /gold 这个场景用不上了,但 MCP(让 Claude 实时获取外部数据或操作外部系统的能力)在以下情况依然适合:
① 临时的、一次性的查询
还没有做成网页功能,但又想知道答案:
"帮我检查一下我的 SSL 证书什么时候到期"
"这个域名的 DNS 解析到哪台服务器了?"
"看看 /var/log/ 里最大的文件是哪些"
这些不值得做一个功能页面,但 MCP 可以即时查给你。
② 需要判断和对比的分析
"帮我对比一下今天和上周同时间的 CPU 负载"
"看看最近 7 天的监控趋势,有没有异常"
"这个服务器的内存使用是不是在持续增长"
虽然监控页面有数据,但聊天问更方便,我直接分析了告诉你结论。
③ 临时排查问题
"我去看了一眼服务器连不上了,帮我看看怎么回事"
"这个报错是什么意思,严重吗?"
"磁盘快满了,哪些目录可以清理?"
④ 操作类任务(谨慎使用)
"帮我把定时任务面板里的服务器巡检改成每小时一次"
"帮我创建一个新的定时任务,每天早上 8 点检查证书"
总结原则
| 场景 | 适合用 |
|---|---|
| 每天固定执行、需要稳定推送 | 定时任务面板 |
| 随时打开看数据 | 网页功能 |
| 要我做分析对比、给建议 | 直接问我(不需要 MCP) |
| 一次性的、还没做成页面的查询 | MCP |
| 临时排查、诊断问题 | MCP 或直接问 |
| 频繁重复的需求 | 应该做成网页功能 |
一句话:MCP 适合临时的、一次性的,网页和定时任务适合固定的、重复的。
当前架构总览
gold_price_crawler.py(独立爬虫,不依赖任何外部服务)
│
├── 定时任务面板 09:46 触发执行
├── 写入 latest_report.json → 🏆 黄金价格 页面展示
├── 写入 price_history.json(历史数据)
├── 生成趋势图 → static/gold/trend_*.png
└── Server酱推送 → 微信收到通知
MCP(/gold 技能)已不再使用,但保留不影响任何功能。
相关问题
Q: 定时任务面板的黄金采集和 🏆 黄金价格页面数据源一样吗?
A: 一样。都是 gold_price_crawler.py 产出的 latest_report.json。
Q: Flask 停了定时任务还会执行吗?
A: 不会。定时任务面板跑在 Flask 后台线程,Flask 停止则任务不执行。关键任务建议走系统 crontab 做备份。
Q: MCP 和爬虫是什么关系?
A: 没有关系。MCP 是我(Claude)的实时查询能力,爬虫是服务器的独立脚本。之前 /gold 让两个走在一起,现在它们分开了。