python脚本监控股票价格钉钉推送
关注股市,发家致富
问题:一天天盯着股市多累,尤其上班,还不能暴露,股票软件,红红绿绿,这么明显的列表页面,一看就知道在摸鱼。被领导发现饭碗就没了
解决:搞个脚本监听一下自己关注的股票,一到价格就发个钉钉消息推送,上班摸鱼两不误。
一、配置centos的python版本
- centos7自带了python2,但是安装模块的时候各种报错,基本上都是版本的原因,pip install 默认都下载了最新版本的模块包,但是最新版本的模块包都不支持python2,需要python3,不闲累的话,可以指定版本号进行模块的安装。
- 两个等号用于指定版本 pip install pandas==0.19.0 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com (带上代理站点,安装起来嗖嗖的)
- 还是安装个python3比较靠谱,yum install python3
- 不同版本的模块安装:
python2 -m pip install 模块名称
python3 -m pip install 模块名称
二、添加钉钉机器人
添加完机器人后,获取webhook地址
三、编写python脚本
# encoding: utf-8 import requests
import tushare, time
import datetime # 消息内容,url地址
from pandas._libs import json # 机器人回调地址
webhook = 'https://oapi.dingtalk.com/robot/send?access_token=23e2b46e8b55a0573a0e92a26b427281f9aa85f387593c5e9f1b3c889c141148' # 开市时间、闭市时间
# 09:20 11:30 13:00 15:00
amStart = 920
amEnd = 1130
pmStart = 1300
pmEnd = 1500 # 默认当前状态为闭市
nowStatus = 'off' def dingtalk(msg):
print('【钉钉】:', msg)
headers = {'Content-Type': 'application/json; charset=utf-8'}
data = {'msgtype': 'text', 'text': {'content': msg}, 'at': {'atMobiles': [], 'isAtAll': False}}
post_data = json.dumps(data)
response = requests.post(webhook, headers=headers, data=post_data)
return response.text def getrealtimedata(share):
data = tushare.get_realtime_quotes(share.code)
share.name = data.loc[0][0]
share.open = float(data.loc[0][1])
share.price = float(data.loc[0][3])
share.high = float(data.loc[0][4])
share.low = float(data.loc[0][5])
share.describe = '股票【{}{}】,当前【{}】,今日最高【{}】,今日最低【{}】'.format(share.code, share.name, share.price, share.high, share.low)
return share class Share():
def __init__(self, code, buy, sale):
self.name = ''
self.open = ''
self.price = ''
self.high = ''
self.low = ''
self.describe = ''
self.code = code
self.buy = buy
self.sale = sale
self.num = 0 def main(sharelist):
for share in sharelist:
stock = getrealtimedata(share)
print(stock.describe)
if stock.price == 0:
continue
if stock.price <= stock.buy:
# 如果连续提示10次,就不再提示
if share.num > 5:
continue
dingtalk('【价格低于[{}]赶紧买入】{}'.format(share.buy, stock.describe))
print(share.num)
share.num += 1 print(share.num)
elif stock.price >= stock.sale:
dingtalk('【价格高于[{}]赶紧卖出】{}'.format(share.sale, stock.describe))
else:
print('静观其变……') # 重置计数器num
def reset(sharelist):
for share in sharelist:
share.num = 0 # 股票编号 买价提示,,卖价提示
# 002273水晶光电
share1 = Share("002273", 13.4, 15)
# 600100同方股份
share2 = Share("600100", 5.92, 6.03)
# 000810创维数字
share3 = Share("000810", 7.66, 7.77)
sharelist = [share1, share2, share3]
while True:
now = datetime.datetime.now()
dayOfWeek = now.isoweekday()
print(dayOfWeek)
# 工作日
if dayOfWeek < 6:
print("workday")
nowTimeInt = int(now.strftime("%H%M"))
print("当前时间:", nowTimeInt)
# 判断时间
if amStart < nowTimeInt < amEnd or pmStart < nowTimeInt < pmEnd:
if nowStatus == 'off':
reset(sharelist)
nowStatus = 'on'
# dingtalk('股票开市啦!!!!!')
main(sharelist)
else:
if nowStatus == 'on':
nowStatus = 'off'
# dingtalk('股票闭市啦!!!!!')
else:
print("weekend")
# 间隔5s执行一次
time.sleep(5)
四、逐步更新优化
python脚本监控股票价格钉钉推送的更多相关文章
- Jenkins 实现Gitlab事件自动触发Jenkins构建及钉钉消息推送
实现Gitlab事件自动触发Jenkins构建及钉钉消息推送 实践环境 GitLab Community Edition 12.6.4 Jenkins 2.284 Post build task 1. ...
- Jenkins构建项目后发送钉钉消息推送
前言 钉钉是我们日常工作的沟通工具,在Jenkins构建持续集成项目配合钉钉机器人的功能,可以让我们在持续集成测试环节快速接收到测试结果的消息推送. 一:新建一个钉钉群,选择自定义机器人 二:添加机器 ...
- Jenkins环境搭建(7)-集成钉钉消息推送
在去年的时候,搭建了一套Jenkins环境,基本功能已实现,可以通过如下地址查阅. Jenkins环境搭建(1)-下载与安装 Jenkins环境搭建(2)-搭建jmeter+ant+jenkins自动 ...
- Java项目中集成钉钉机器人推送消息提醒
前言: 项目中有一个需求,当有新订单产生的时候,希望能够及时通知到业务相关人员进行处理,整体考虑了一下,选用了钉钉机器人提醒功能(公司内部主要也是使用钉钉进行通讯). 操作: 主要分为两部分进行处理: ...
- DingTalk钉钉消息推送(.net core 3 WebApi尝鲜记)
我发了个朋友圈,Swagger真他妈的牛B,解放了开发API的码农,麻麻再也不用担心我们写API文档耽误回家吃饭了. /// <summary> /// 发送钉钉消息 /// </s ...
- Python3使用钉钉机器人推送消息(签名方式)
import time import hmac import hashlib import base64 import urllib import json import requests impor ...
- Redis之使用python脚本监控队列长度
编辑python脚本redis_conn.py #!/usr/bin/env python #ending:utf-8 import redis def redis_conn(): pool = re ...
- zabbix 调用python脚本监控 磁盘剩余空间(创建模版,创建监控项,创建触发器)
主要 记录一下 使用zabbix 自己创建模版.监控项.触发器,并调用python脚本. 需求: 监控备份机磁盘剩余空间(windows系统) 一.安装zabbix_agent 比较简单 修改配置文 ...
- 利用python对微信自动进行消息推送
from wxpy import * #该库主要是用来模拟与对接微信操作的 import requests from datetime import datetime import time impo ...
随机推荐
- python自定义异常,使用raise引发异常
1.自定义异常类,自定义的异常类必须是Exception或者Error的子类! 1 #!/usr/bin/env python 2 # encoding: utf-8 3 4 class Illega ...
- ctf实验吧Once More
题目链接:http://ctf5.shiyanbar.com/web/more.php 思路分析:显然是后台逻辑代码. 1.ereg函数有漏洞,可以使用%00截断,这个就做笔记了好吧.这个函数大致意思 ...
- viewport深入理解和使用
什么是viewport ? viewport是用户网页的可视区域,也可叫做视区.手机浏览器是把页面放在一个虚拟的窗口(viewport)中,通常这个虚拟的窗口比屏幕宽,这样就不用把网页挤到很小的窗口中 ...
- VS Code 下载安装并设置中文面板显示
下载: 下载地址:https://code.visualstudio.com/ 微软在2015年4月30日Build 开发者大会上正式宣布了 Visual Studio Code 项目:一个运行于 M ...
- [刘阳Java]_美团点评2018届校招面试总结_Java后台开发【转载】
美团喜欢一口气把三轮技术面和HR面一起面完,虽然身心比较累(每一面差不多一个小时),不过也算是一个好事,不像某些公司一天就一面然后让回去等消息,等面试通知也等得让人很焦虑,而且还容易出现面试时间冲突. ...
- Spring解决Attribute tx bound to namespace httpwww.w3.org2000xmlns was already specified
Spring|解决Attribute "tx" bound to namespace "http://www.w3.org/2000/xmlns/" was a ...
- DNS服务器安全---通过ipset对DNS异常解析流量的源IP地址进行管控
ipset介绍 ipset是iptables的扩展,它允许你创建 匹配整个地址集合的规则.而不像普通的iptables链只能单IP匹配, ip集合存储在带索引的数据结构中,这种结构即时集合比较大也可以 ...
- PAT乙级:1069 微博转发抽奖 (20分)
PAT乙级:1069 微博转发抽奖 (20分) 题干 小明 PAT 考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔 N 个人就发出一个红包.请你编写程序帮助他确定中奖名单. 输入 ...
- 【洛谷P4933 大师】动态规划
题目描述 ljt12138首先建了n个特斯拉电磁塔,这些电塔排成一排,从左到右依次标号为1到n,第i个电塔的高度为h[i]. 建筑大师需要从中选出一些电塔,然后这些电塔就会缩到地下去.这时候,如果留在 ...
- 运行ride.py报错,闪退
报错信息如下: F:\Python3.8\Scripts>python ride.py<class 'robotide.preferences.configobj.UnreprError' ...