最近买了持仓股太多,感觉上班摸鱼看股票的时候经常会被发现,于是写了一个python脚本专门用来监控价格程序,并打印在CMD。
本文主要解决了3个问题
- 信息来源,雪球的API接口,需要附上UA信息和关闭证书认证
- 间隔监控程序的设定和返回时间
- Windows的弹窗预警机制
2024年6月11日
新更新支持代理模式,GPT优化后的版本
import json
import time
import requests
# 禁用 SSL 验证警告
import urllib3
urllib3.disable_warnings()
# 代理设置
proxy = '127.0.0.1:10808'
proxies = {
'http': 'socks5://' + proxy,
'https': 'socks5://' + proxy
}
# 雪球 API URL
urls = "https://stock.xueqiu.com/v5/stock/realtime/quotec.json?symbol="
# 请求头设置
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36"
}
# 数据处理函数
def xueqiu_analysis_return(dat):
jdat = json.loads(dat)
rdat = []
for n in jdat['data']:
ndic = {}
ndic['股票代码'] = n['symbol']
ndic['现价'] = "{:.2f}".format(n['current'])
ndic['涨幅百分比'] = n['percent']
ndic['涨幅'] = (n['chg'])
ndic['最高价'] = n['high']
ndic['最低价'] = n['low']
ndic['今日开盘'] = n['open']
ndic['昨日收盘'] = n['last_close']
ndic['换手'] = n['turnover_rate']
rdat.append(ndic)
return rdat
# 网络请求函数
def get_stock_data(stock_code):
try:
# r = requests.get(urls + stock_code, headers=headers, verify=False)
r = requests.get(urls + stock_code, headers=headers, verify=False,proxies=proxies)
r.raise_for_status()
return xueqiu_analysis_return(r.text)
except requests.exceptions.RequestException as e:
print("Error getting data for stock", stock_code, ": ", e)
return None
# 打印股票信息函数
def print_stock_info(stock_info):
if stock_info:
print(time.strftime("%H:%M:%S"), "-", stock_info[0].get('股票代码'), stock_info[0].get("现价"),
stock_info[0].get("涨幅百分比"), stock_info[0].get('最高价'), stock_info[0].get('最低价'),stock_info[0].get('换手'))
# 主程序
while True:
now_localtime = time.strftime("%H:%M:%S", time.localtime())
if ("09:00:00" < now_localtime < "11:30:10") or ("13:00:00" < now_localtime < "15:00:10"):
stock1 = get_stock_data('SZXXXXXX') #你要看的深交所股票
stock2 = get_stock_data('SHXXXXXX') #你要看的上交所股票
print_stock_info(stock1)
print_stock_info(stock2)
print("######################")
else:
break