logo
0
0
WeChat Login
Price Hub<pricehub@example.com>
feat: Price Hub — 大宗商品价格监控中心

Price Hub — 大宗商品价格监控中心

自动抓取化工品(硫磺、硫酸)及农副大宗商品(大豆、玉米、小麦、棉花、白糖、豆粕)的现货价格与国内外期货行情,生成可视化报告页面,支持页面内配置定时任务。

功能特性

  • 8 大品种现货追踪 — 化工 2 品种 + 农副 6 品种,每日自动抓取
  • 期货对照 — 国内三大交易所(上期所 / 大商所 / 郑商所)主力合约 + 国际 CBOT / ICE 行情
  • 现期对比 — 同品种现货 vs 期货走势叠加,基差可视化
  • 页面定时管理 — 在页面底部直接新增、编辑、删除 cron 定时任务,无需 SSH 服务器
  • 90 天历史 — 自动保留近 90 天数据,图表动态展示

目录结构

price-hub/ ├── README.md # 本文件 ├── requirements.txt # Python 依赖 ├── docs/ │ └── architecture.md # 架构文档(含数据流图) ├── src/ │ ├── scrapers/ │ │ ├── base.py # 基础 HTTP 工具 │ │ ├── chemicals.py # 化工品抓取(硫磺、硫酸) │ │ ├── agriculture.py # 农副品抓取(大豆、玉米、小麦等) │ │ └── futures.py # 期货行情抓取(国内+国际) │ ├── update_prices.py # 主更新脚本 │ └── server.py # Web 服务 + 定时任务引擎 ├── data/ # 运行时数据(自动生成) │ ├── spot_prices.json # 现货历史 │ ├── futures_prices.json # 期货历史 │ ├── scheduler_config.json # 定时任务配置 │ └── update.log # 运行日志 └── web/ └── index.html # 前端报告页面(单文件)

快速开始

1. 安装依赖

pip install -r requirements.txt

2. 首次抓取数据

python src/update_prices.py

3. 启动 Web 服务

python src/server.py

浏览器访问 http://localhost:8080 即可查看报告。

数据源

类型数据源说明
化工现货生意社 / 百川盈孚优先生意社,回退百川盈孚
农副现货生意社 / 百川盈孚同上
国内期货新浪财经期货接口大商所 / 郑商所主力合约
国际期货新浪财经外盘接口CBOT / ICE 行情

定时任务

页面内管理

在页面底部「定时任务」区域,可直接:

  • 点击 + 新增任务 创建 cron 定时任务
  • 点击 编辑 修改 cron 表达式或启/禁用
  • 点击 立即执行 手动触发一次更新

Cron 表达式参考

表达式含义
0 9 * * *每天 9:00
0 9,18 * * *每天 9:00 和 18:00
0 9 * * 1-5工作日 9:00
*/30 9-17 * * 1-5工作日 9:00-17:00 每30分钟

纯脚本模式(不启动 Web 服务)

如果只需要定时抓取数据,可使用系统 crontab:

# 编辑 crontab crontab -e # 每天 9:00 执行(请替换路径) 0 9 * * * /usr/bin/python3 /path/to/price-hub/src/update_prices.py >> /path/to/price-hub/data/update.log 2>&1

部署

Docker(推荐)

FROM python:3.12-slim WORKDIR /app COPY . . RUN pip install --no-cache-dir -r requirements.txt # 首次抓取 RUN python src/update_prices.py || true EXPOSE 8080 CMD ["python", "src/server.py"]

裸机部署

git clone https://cnb.cool/table-link/public/price-hub.git cd price-hub pip install -r requirements.txt python src/update_prices.py # 首次抓取 nohup python src/server.py & # 后台运行

建议配合 systemd 或 supervisor 管理进程。

API 接口

方法路径说明
GET/api/scheduler获取定时任务列表
PUT/api/scheduler/job新增/更新任务
DELETE/api/scheduler/job/<id>删除任务
POST/api/run手动触发更新
GET/api/logs获取运行日志
GET/api/data/spot获取现货历史 JSON
GET/api/data/futures获取期货历史 JSON

许可

MIT License

About

No description, topics, or website provided.
Language
HTML52.8%
Python47.2%