✏️ 编辑

黄金价格数据链路说明:MCP / 爬虫 / 定时任务 / 网页的关系

创建于 2026-06-17 14:35:29 · 更新于 2026-07-01 11:20:56

背景

之前做了多个与黄金价格相关的功能,容易搞混它们之间的关系。这篇笔记梳理清楚,并延伸到 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 让两个走在一起,现在它们分开了。