本帖最后由 badboysky 于 2026-3-3 15:56 编辑
节日快乐!阖家团圆!
金友们,大家好!黄金新版价格预警系统本来袭!!!
最近金价可能又要有不小的震荡,基于《黄金价格消息推送》原贴地址:https://www.52pojie.cn/thread-2089450-1-1.html,版本重大升级。
新版配置后可后台修改各项参数,去除原抓取插件playwright(安装复杂切还要单独再安装浏览器插件),根据热心贴友建议使用DrissionPage抓取。(测试后发现windows下可用,linux服务器没弄明白,抓取这个几乎可以不用了,找到了两个api还是使用api省事,如果api无效可以使用抓取逻辑,但需自行研究。
后台可配数据源,数据源逻辑按排序和可用顺序为主,请关注)
新版的功能部分说明:
一、更新为《黄金价格监控系统》;
二、结构性更新;
三、差异:
支持京东金融、新浪财经等多个数据源; 增强的日志记录和监控;
多个账号推送配置,自动切换失败的账号;
**管理员后台**:支持登录状态管理,登录后可直接访问配置页面;
**系统健康监控**:实时监控系统各组件状态,包括数据抓取、JSON生成等;
**增强的JSON写入可靠性**:添加重试机制和状态监控,确保数据持久化;
四、待完善的一些小功能:
数据按日期存储成json文件,可通过后台查看历史,更多功能待完善;
ai建议,已有效果代码但还未成型;
五、安全性处理增加.env文件;
六、更多请看说明文档; PS:没有完善的或没有bug的系统,本人基于ai写的代码更是如此,但是是经过测试的,基本功能没问题,如有不如意的地方,请大家多多谅解!!!
微信推送消息
微信推送消息
PC端页面展示
PC端页面展示
登录页面
登录页面
后台首页
后台首页
后台金价数据列表
后台金价数据列表
后台配置
后台配置
下面是代码片段(因为发帖需要只提供一部分,具体请自行下载部署):
[Python] 纯文本查看 复制代码
# 主入口文件
import time
import threading
import sys
# 导入配置
import config
from config.config import ENABLE_WECHAT_PUSH, ENABLE_HTML_GENERATION, ENABLE_GUI_WINDOW, ENABLE_COMPILE
# 导入Flask应用
from app import app
from app.routes import start_flask_app
# 导入监控模块
from monitor.monitor import run_gold_price_monitor
# 导入窗口模块
from gui.window import show_window
# 导入JSON调度器
from utils.json_scheduler import json_scheduler
if __name__ == "__main__":
# 显示AI服务配置状态
print("=== 黄金价格监控系统 ===")
if config.config.is_configured():
available_services = config.config.get_available_services()
print(f"✓ 已配置AI服务: {', '.join(available_services)}")
else:
print("[警告] 未配置AI服务API密钥")
print(" 请参考 .env.example 文件配置API密钥以启用完整AI分析功能")
print("")
# 显示当前配置状态
print("当前功能配置:")
print(f" - 微信推送: {'启用' if ENABLE_WECHAT_PUSH else '禁用'}")
print(f" - HTML生成: {'启用' if ENABLE_HTML_GENERATION else '禁用'}")
print(f" - GUI窗口: {'启用' if ENABLE_GUI_WINDOW else '禁用'}")
print(f" - 编译EXE: {'启用' if ENABLE_COMPILE else '禁用'}")
print("")
print("开始运行黄金价格监控...\n")
# 启动Flask应用线程
flask_thread = threading.Thread(target=start_flask_app, daemon=True)
flask_thread.start()
# 启动黄金价格监控
import logging
from logger.logger_config import get_logger
logger = get_logger(__name__)
logger.info("启动黄金价格监控线程...")
monitor_thread = threading.Thread(target=run_gold_price_monitor, daemon=True, name="GoldMonitor")
monitor_thread.start()
# 根据配置决定是否显示窗口
if ENABLE_GUI_WINDOW:
# 显示窗口
try:
show_window()
except Exception as e:
logger.error(f"调用show_window函数失败: {e}")
# 即使窗口显示失败,程序也能继续运行
logger.info("窗口显示失败,程序将在后台持续运行")
# 保持程序运行,定期检查监控线程状态
logger.info("程序将在后台持续运行,按 Ctrl+C 退出")
try:
while True:
if not monitor_thread.is_alive():
logger.warning("监控线程已退出")
break
time.sleep(5) # 每5秒检查一次
except KeyboardInterrupt:
print("\n程序被用户中断,正在安全退出...")
logger.info("程序被用户中断,正在安全退出")
# 清理资源
json_scheduler.shutdown()
sys.exit(0)
源码地址:https://gitee.com/hejsky/gold-price.git |