当前位置:
首页 > temp > python入门教程 >
-
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脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# 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" )<br data - filtered = "filtered" > # 间隔5s执行一次 time.sleep( 5 ) |
四、逐步更新优化
出处:https://www.cnblogs.com/melodyf/p/15162258.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数