使用Python实现实时金价监控并自动提醒功能

 更新时间:2025年05月09日 14:41:46   作者:海拥✘  
在日常投资中,很多朋友喜欢在一些平台买点黄金,低买高卖赚点小差价,但黄金价格实时波动频繁,总是盯着手机太累了,于是我用Python写了一个实时金价监控+自动提醒脚本,可以帮我在金价波动达到盈亏阈值时自动弹窗提醒,告别手动盯盘,需要的朋友可以参考下

工具能干啥?

简单来说就是:

  • 自动盯着黄金价格👀
  • 赚了40块会开心提醒我"可以卖啦!"
  • 亏了60块会哭唧唧提醒我"注意止损!"
  • 每30秒偷偷看一眼价格,完全不用我 操心

手把手教你用

1、先装好这些"食材"

pip install selenium webdriver-manager beautifulsoup4

2、代码实现讲解

代码分为几个关键模块,下面我们逐段解析。

1. 用户输入参数

x = float(input("请输入买入时金价(元/克): "))
y = float(input("请输入买入金额(元): "))
buy_weight = y / x
print(f"买入克数: {buy_weight:.4f} 克")

用户只需输入两项:买入时金价买入金额,程序会自动帮你算出买入的黄金克数(忽略手续费)。

2. 设置无头浏览器(Selenium)

chrome_options = Options()
chrome_options.add_argument("--headless")  # 无界面运行
chrome_options.add_argument("--disable-gpu")
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)

我们使用 Selenium + webdriver-manager 来实现网页访问,并设置浏览器为“无头模式”,即后台运行,不弹出浏览器窗口,运行更轻便。

3. 抓取实时金价(BeautifulSoup + 正则)

html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
all_titles = soup.find_all('span', class_='gold-price-persent-title')
...

通过 BeautifulSoup 来解析页面HTML内容,找到金价字段并用正则提取数字,兼容jd移动端页面结构(这个页面PC访问可能为空白,但移动端HTML源码中是有数据的)。

4. 盈亏计算与提醒逻辑

current_value = gold_price * buy_weight
profit = current_value - y
...
if profit >= 40:
    popup("卖出提醒", msg)
elif profit <= -60:
    popup("亏损提醒", msg)

这里是盈利逻辑的核心部分,实时计算你当前账户中黄金价值与初始投资的差额,并在盈亏超过指定值时通过弹窗提醒。

弹窗是通过 ctypes.windll.user32.MessageBoxW 实现的,兼容 Windows 系统,效果如下:

5. 自动循环 + 中断退出

while True:
    ...
    time.sleep(30)

脚本默认每30秒刷新一次网页获取新金价,并自动循环运行。如果你按下 Ctrl + C,脚本会优雅退出并关闭浏览器。

项目实测效果

实际运行过程中,当我输入:

请输入买入时金价(元/克): 780.52
请输入买入金额(元): 10000

程序每半分钟自动更新一次金价,并在达到设定盈亏条件时自动弹出提醒框,及时提示买卖时机,非常实用!

可以拓展的功能

这个项目只是一个基础框架,你可以根据自己的需求继续拓展:

  • 自动绘制金价走势图;
  • 集成邮件或微信推送,可以把popup换成微信机器人通知;
  • 设置运行时间区间(如早9点到晚8点);
  • 接入AI判断买卖信号
  • 可以同时监控支付宝、银行APP的价格……

总结

这个小工具虽然简单,却非常实用,适合有黄金投资习惯的朋友随时监控自己的盈亏情况。通过 Selenium + BeautifulSoup + ctypes 的组合,我们可以实现自动化盯盘、节省精力、提高效率!

以上就是使用Python实现实时金价监控并自动提醒功能的详细内容,更多关于Python金价监控并提醒的资料请关注脚本之家其它相关文章!

相关文章

  • python3 设置多进程名称并在ps命令中可见(Centos7 系统)

    python3 设置多进程名称并在ps命令中可见(Centos7 系统)

    setproctitle 是一个 Python 模块,用于设置进程标题(process title),通过设置进程标题,可以让进程在系统级的进程管理工具中展示自定义的名称,方便用户查看和管理进程,本文介绍python3 设置多进程名称并在ps命令中可见,感兴趣的朋友一起看看吧
    2024-03-03
  • Python可视化神器pyecharts绘制桑基图

    Python可视化神器pyecharts绘制桑基图

    这篇文章主要介绍了Python可视化神器pyecharts绘制桑基图,即桑基能量分流图,也叫桑基能量平衡图,更多相关介绍具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • Python之Web框架Django项目搭建全过程

    Python之Web框架Django项目搭建全过程

    这篇文章主要介绍了Python之Web框架Django项目搭建全过程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • pandas之数据修改与基本运算方式

    pandas之数据修改与基本运算方式

    这篇文章主要介绍了pandas之数据修改与基本运算方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • python连接mysql调用存储过程示例

    python连接mysql调用存储过程示例

    这篇文章主要介绍了python连接mysql调用存储过程示例,需要的朋友可以参考下
    2014-03-03
  • 详解Python Matplot中文显示完美解决方案

    详解Python Matplot中文显示完美解决方案

    这篇文章主要介绍了Python Matplot中文显示完美解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Selenium 安装和简单使用的实现

    Selenium 安装和简单使用的实现

    这篇文章主要介绍了Selenium 安装和简单使用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • python中的随机数种子seed()用法说明

    python中的随机数种子seed()用法说明

    这篇文章主要介绍了python中的随机数种子seed()用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • 浅谈OpenCV中的新函数connectedComponentsWithStats用法

    浅谈OpenCV中的新函数connectedComponentsWithStats用法

    这篇文章主要介绍了浅谈OpenCV中的新函数connectedComponentsWithStats用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python基于socket模块实现UDP通信功能示例

    Python基于socket模块实现UDP通信功能示例

    这篇文章主要介绍了Python基于socket模块实现UDP通信功能,结合实例形式分析了Python使用socket模块实现IPV4协议下的UDP通信客户端与服务器端相关操作技巧,需要的朋友可以参考下
    2018-04-04

最新评论