qcloudsms_py短信发送和easyquotation股票实时数据获取

写点笔记

共 2420字,需浏览 5分钟

 · 2022-02-16

有时候我们做股票投资,需要实时盯盘。而盯盘的任务我们完全可以交给计算机,因此当信号出现的时候知会自个是很有必要的,但是前提是获取实时数据并判断是否发送短信提醒,这块作者在网上找了一写资料,算是留个记录,方便日后用到。

1、qcloudsms_py发送短信

作者购买了腾讯云的短信服务,大概买了1000条短信,腾讯云发送短信要用其提供的qcloudsms发送短信,所以我们就用pip或者idea自带的包管理工具都可以安装,这块我们主要贴一下发送短信的代码。

from qcloudsms_py import SmsSingleSenderfrom qcloudsms_py.httpclient import HTTPErrorimport ssl# 发送短信class Qsms:    # 短信应用SDK AppID    appid = ********  # SDK AppID是1400开头    # 短信应用SDK AppKey    appkey = "********"    # 需要发送短信的手机号码    default_phone = ["******"]    # 短信模板ID,需要在短信应用中申请    template_id = 123123    # 签名    sms_sign = "*****"
# 发送短信 def sendSms(self, phones, code, price, operation): ssl._create_default_https_context = ssl._create_unverified_context ssender = SmsSingleSender(self.appid, self.appkey) # 当模板没有参数时,`params = []` params = [] params.append(code) params.append(price + "-" + operation) if phones == None or phones == "": phonesTemp = self.default_phone else: phonesTemp = phones.split(",") for item in phonesTemp: try: # 签名参数不允许为空串 ssender.send_with_param(86, item, self.template_id, params, sign=self.sms_sign, extend="", ext="") print("send to:" + item) except HTTPError as e: print(e) except Exception as e: print(e)
Qsms().sendSms("11111111","000009.sz","15.56","buy")

我们看一下发送短信的效果吧,这块作者购买了小米手环,方便提醒,由于短信模板的审核比较难,所以作者采用直接采用了登陆的模板,能看懂即可。


2、easyquotation实时获取股票数据

作者找了小半天,首先想到的是解析html,然后发现页面渲染是异步。没办法找到了东方财富web网站的一个ajax接口,如获至宝呀,结果发现请求的ur中有加密串,所以是没办法用到额,github上一顿搜都不好使。无奈最后去知乎上一搜,发现了easyquotation这个工具。尝试了一下发现这才是yyds呀。而且这个工具获取股票数据的姿势很强,能够弥补之前我遍历获取全网股票数据的耗时问题,当然这个还有待探索。今天发现easyquotation提供获取实时股票价格的能力,这才是我今天的核心目标。顺手还发现了一个开源交易工具easytrader(https://github.com/shidenggui/easytrader)看起来可以直接自动化交易了,以后有机会了再尝试吧。这块主要介绍如何获取实时股票数据。

easyquotation提供sina和tencent的财经数据源。通过对比发现tencent的数据返回了我必须要用到的换手率,为我大腾讯打call!废话不说了,直接上代码吧~

easyquotation的安装也是比较容易的,用pip或者idea自带的包管理工具都可以安装。

import easyquotation# 建议用tencet,因为其返回完了touver字段quotation = easyquotation.use('tencent'# 新浪 ['sina'] 腾讯 ['tencent', 'qq']#单只股票b=quotation.real('sz000009') # 支持直接指定前缀,如 'sh000001'print(b)
#多只股票c=quotation.stocks(['sz000009', '162411'])print(c)

应该说所需要的数据tencet都给我们提供了,再此感谢小马哥~


本次文章就写到这里了,喜欢的同学可以给我点赞哦~


浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报