当前位置: 首页 > news >正文

转 股票触发指定价格发送到 企业微信

[Python源码]股票价格监听并推送-代码狗

import aiohttp,asyncio,json,time,re,os,datetimeclass StockListen:def __init__(self):#定义需要监听的股票代码列表self.stock_list = ['1.600050','1.601988','1.601288','1.601939']#定义预期价格列表self.expect_price = [6.6,3.0,2.7,5]#定义数据接口api地址self.api_url = 'https://push2his.eastmoney.com/api/qt/stock/kline/get'#定义推送地址self.wechat_url='你的推送地址'#初始化异步请求对象self.session = aiohttp.ClientSession()#定义本地记录文件路径stock.confself.stock_conf = 'stock.conf'async def get_data(self,stock_code):#定义请求头headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36','referer':'https://quote.eastmoney.com'}#获取当前时间戳now_time = int(time.time()*1000)#定义请求参数params = {'cb': 'jQuery351010027202936442903_1692684817016','secid': stock_code,'ut': 'fa5fd1943c7b386f172d6893dbfba10b','fields1': 'f1,f2,f3,f4,f5,f6','fields2': 'f51,f52,f53,f54,f55','klt': '101','fqt': '1','end': '20500101','lmt': '1','_': now_time}#发起异步请求async with self.session.get(self.api_url, params=params, headers=headers) as resp:#获取响应内容data = await resp.text()#正则匹配提取jQuery351010027202936442903_1692684817016()中的内容data = re.findall('jQuery351010027202936442903_1692684817016\((.*)\);', data)[0]#将数据转换为json格式data_json = json.loads(data)if data_json['data'] is not None:return data_json['data']else:return None#企业微信异步推送,这里可以换成你自己的async def send_wechat(self,title,content):#准备请求数据curtime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))data = "你的数据"headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36','Content-Type': 'application/json'}#发送请求async with self.session.post(url=self.wechat_url,data=json.dumps(data),headers=headers) as response:#获取响应数据response = await response.text()#返回响应数据return response#遍历股票代码列表async def get_stock_code(self):#遍历股票代码列表self.stock_list并通过索引下标获取对应价格self.expect_pricefor i in range(len(self.stock_list)):time.sleep(5)#获取股票代码stock_code = self.stock_list[i]#获取股票价格expect_price = self.expect_price[i]#通过get_data方法获得股票数据data = await self.get_data(stock_code)if data is None:return {"code":100,"msg":"数据获取失败"}#判断股票价格是否低于预期print(data['klines'][0])#,分割数据klines = data['klines'][0].split(',')if float(klines[2]) < float(expect_price):#判断今日是否已经推送过lastrecord = await self.get_stock_push_time(stock_code)if  lastrecord is None:#通过send_wechat方法发送消息response = await self.send_wechat(data['name']+stock_code,klines[2])await self.record_stock_push_time(stock_code)print(response)else:current_time = datetime.datetime.now().strftime("%Y-%m-%d")if lastrecord != current_time:#通过send_wechat方法发送消息response = await self.send_wechat(data['name']+stock_code,klines[2])await self.record_stock_push_time(stock_code)print(response)else:print("今日已推送")else:#如果高于预期则不发送消息print(stock_code+'价格未达到预期')async def get_stock_push_time(self,stock_code):# 检查文件是否存在if os.path.exists("stock.conf"):with open("stock.conf", "r") as file:lines = file.readlines()for line in lines:if line.startswith(stock_code + ","):return line.split(",")[1].strip()return None#记录推送时间到本地文件stock.confasync def record_stock_push_time(self,stock_code):current_time = datetime.datetime.now().strftime("%Y-%m-%d")record = f"{stock_code},{current_time}"# 检查文件是否存在if os.path.exists("stock.conf"):with open("stock.conf", "r") as file:lines = file.readlines()else:lines = []# 更新股票推送时间found_stock = Falsefor i in range(len(lines)):if lines[i].startswith(stock_code + ","):lines[i] = record + "\n"found_stock = Truebreak# 如果股票代码不存在,则添加新记录if not found_stock:lines.append(record + "\n")# 将记录写入文件with open("stock.conf", "w") as file:file.writelines(lines)#单例测试
if __name__ == '__main__':async def ansyc_test():#获取股票代码stock_code = '1.600050'#实例化对象eastmoney_stock_data =StockListen()#发起异步请求data=await eastmoney_stock_data.get_stock_code()await eastmoney_stock_data.session.close()return dataresult=asyncio.get_event_loop().run_until_complete(ansyc_test())print(result)

相关文章:

转 股票触发指定价格发送到 企业微信

[Python源码]股票价格监听并推送-代码狗 import aiohttp,asyncio,json,time,re,os,datetimeclass StockListen:def __init__(self):#定义需要监听的股票代码列表self.stock_list [1.600050,1.601988,1.601288,1.601939]#定义预期价格列表self.expect_price [6.6,3.0,2.7,5]#…...

Linux修复软RAID

系统应该将mdadm配置成当发生RAID问题时给root用户发送邮件。需要更改/etc/mdadm/mdadm.xonf里的MALLADDR 并用/etc/init.d/mdadm reload重新加载下 查看/proc/mdstat文件 可以看到sdd1被标记F&#xff0c;说明它已经失效 从/dev/md0中移除磁盘sdd1 想要移除磁盘&#xff…...

【嵌入式软件C编程】主函数free子函数malloc地址的两种方式以及注意事项

本文档主要记录嵌入式C语言在子函数中应用malloc函数的方式&#xff0c;在实际项目中内存管理特别重要 一般在主函数中&#xff08;main&#xff09;使用malloc函数&#xff0c;然后在通过free函数进行释放内存&#xff0c;但有时候如果必须在子函数长调用malloc函数该怎样进行…...

金融工程学学习笔记第一章

第一章 金融工程概述 什么是金融工程 金融工程的含义 金融工程&#xff1a; 金融工程&#xff1a;一门融现代金融学、数理和工程方法与信息技术与一体的新兴交叉型学科。 工程是指以某种设想的目标为依据&#xff0c;应用有关科学知识和技术手段&#xff0c;通过有组织的一…...

CentOS 7 编译ZooKeeper C客户端

简介 本文主要讲解&#xff1a;Zookeeper C客户端库在Centos 7上的编译&#xff0c;使用的Zookeeper版本为3.4.13。 工具安装 安装ant 和cppunit-devel工具&#xff1a; [rootlocalhost source_code]# yum install -y cppunit-devel 已加载插件&#xff1a;fastestmirror L…...

【2023年数学建模国赛】A题解题思路

2023年数学建模国赛A题解题思路 问题1&#xff1a; 要计算定日镜场的年平均光学效率和年平均输出热功率&#xff0c;以及单位镜面面积年平均输出热功率&#xff0c;我们可以按照以下步骤进行&#xff1a; 遍历所有定日镜的位置&#xff0c;根据给定的定日镜尺寸和安装高度&am…...

人们对区块链的认识开始变得深入和完善,另一条新路径开始衍生

当区块链行业的发展进入到深水区&#xff0c;特别是当有关区块链的狂热与躁动开始退场&#xff0c;仅仅只是主打区块链的概念&#xff0c;而没有找到区块链与现实商业联通的方式和方法&#xff0c;依然成为困扰区块链发展的一大症结。   事实上&#xff0c;从区块链被人们认识…...

关于Comparable、Comparator接口返回值决定顺序的问题

Comparable和Comparator接口都是实现集合中元素的比较、排序的&#xff0c;下面先简单介绍下他们的用法。 1. 使用示例 public class Person {private String name;private Integer age;public Person() {}public Person(String name, Integer age) {this.name name;this.ag…...

js 根据键判断值

最原始的写法&#xff1a; 改进后的写法&#xff1a; const DeviceTypeObj {SO2: "SO<sub>2</sub>",CO: "CO",NO: "NO",NO2: "NO<sub>2</sub>",O3: "O<sub>3</sub>", let value Dev…...

堆排序,以及大顶堆构造过程Java实现

import java.util.Arrays;public class Main {public static void main(String[] args) {int a[] new int[] { 1, 1, 23, 456, 0 };// int a初始化方式int bb[] { 1, 2, 3, 4 };// int c[5] {1,2,34,5,6};//错误int d[] new int[6]; // 初始为0// int e[] new int[5]{1,2,…...

【C++】类的封装 ① ( 类和对象 | 面向对象三大特征 - 封装 继承 多态 | 类的封装引入 )

文章目录 一、类和对象1、类和对象概念2、代码示例 - 定义类和对象 二、类的封装1、面向对象三大特征2、类的封装引入 一、类和对象 1、类和对象概念 " 面向对象编程 " 是一种 " 编程范式 " , 可以适用于所有的 高级语言 , C 也包括在内 ; 面向对象编程 基…...

Docker原理详细剖析-Namespace

一、简介 docker容器技术从2013年开始火了以后&#xff0c;2014年左右当时有幸在学校能和学院教授一起做些项目以及学习。其中docker技术在当时来说还算是比较新的技术&#xff0c;国内关于这块的资料以及使用也才刚刚开始&#xff0c;讨论docker技术&#xff0c;算是相对时髦的…...

sql:SQL优化知识点记录(九)

&#xff08;1&#xff09;小表驱动大表 对sql调优的分析&#xff1a; 排序优化&#xff1a; 数据库的连接方式&#xff0c;里面的数据尽量这样连接&#xff0c;尽量选择第一个方式&#xff0c;因为两个表的连接一共建立5次连接&#xff0c;第二个建立1000次连接&#xff0c;从…...

【PowerQuery】PowerQuery导入JSON数据

Json数据是目前使用的最为频繁和广泛的一种数据交换格式,JSON的全称为JavaScript Object Notation。Json 主要用于在互联网的消息的数据交换信息传递,他的格式与XML有什么区别呢?为什么不用XML,用Json有啥好处呢?我们接下来讨论下Json相比XML的优势: XML传递的数据过多服…...

bootstrap 主题

颜色值 根据等级 primarysecondarysuccessinfowarningdangerlightdark 根据名字 blackwhiteblueindigopurplepinkredorangeyellowgreentealcyangraygray-darkbrown 好像是self 加的 根据颜色值的转化 var 变量 –bs-**** 比如&#xff1a;–bs-blue&#xff0c;–bs-pri…...

FPGA 学习笔记:Vivado 工程管理技巧

前言 当前使用 Xilinx 的 FPGA,所以需要熟悉 Xilinx FPGA 的 开发利器 Vivado 的工程管理方法 这里初步列举一些实际 Xilinx FPGA 开发基于 Vivado 的项目使用到的工程的管理技巧 代码管理 做过嵌入式软件或者其他软件开发的工程技术人员,都会想到使用代码管理工具,如 SVN 、…...

Java低代码开发:jvs-list(列表引擎)功能(二)字段及样式配置

字段的增减 进入列表页设计器-页表设计界面&#xff0c;点击新增一行、或者删除按钮&#xff0c;可以对字段进行增减操作&#xff0c;如果对于权限的列表页&#xff0c;可以使用批量创建字段的按钮&#xff1a; 字段的批量设置&#xff0c;点击批量添加如下图所示 字段为中文名…...

【Java】线程都有哪几种状态

文章目录 前言传统线程模型&#xff08;操作系统&#xff09;中线程状态Java线程中的状态线程的运行流程 前言 首先我们要知道&#xff0c;在传统&#xff08;操作系统&#xff09;的线程模型中线程被分为五种状态&#xff0c;在java线程中&#xff0c;线程被分为六种状态。 …...

为什么服务端会有那么多的 TimeWait ?

工作中无论是开发环境还是线上环境&#xff0c;我们都出现过大量的 timewait 状态的连接&#xff0c;例如下面这个例子 服务端简单的开辟一个 web server 监听 9966 端口 客户端进行疯狂的请求服务端 瞬间就可以看到咱们服务端的出现大量的 TIME_WAIT 状态的连接 这个时候&…...

任意文件读取及漏洞复现

文章目录 渗透测试漏洞原理任意文件读取1. 任意文件读取概述1.1 漏洞成因1.2 漏洞危害1.3 漏洞分类1.4 任意文件读取1.4.1 文件读取1.4.2 任意文件读取1.4.3 权限问题 1.5 任意文件下载1.5.1 一般情况1.5.2 PHP实现1.5.3 任意文件下载 2. 任意文件读取攻防2.1 路径过滤2.1.1 过…...

目前的一些关于机器学习的感悟

目前的一些关于机器学习的想法 大家一直都在说深度学习和积极学习&#xff0c;当我在本科的时候&#xff0c;就听到很多关于这方面的东西&#xff0c;但当时自己对于这些东西的概念较为模糊&#xff0c;随着研究生进一步的学习&#xff0c;我想讲一下&#xff0c;到目前我所理…...

salesforce从sandbox部署到生产环境的自定义字段权限没有成功上载

salesforce从sandbox部署到生产环境的自定义字段权限没有成功上载 只将字段名称和类型上载了。 查阅&#xff1a; https://help.salesforce.com/s/articleView?idsf.deploy_special_behavior.htm&type5 显示&#xff1a; 自定义字段 从 API 版本 30.0 开始&#xff0c;…...

字节跳动推出AI对话工具“豆包”:免费用

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 听说松松客服的小马爆料了一个消息&#xff1a;字节跳动推出了一个新的AI大模型对话工具&#xff0c;叫做“豆包”。竟然一查发现&#xff0c;早在8月18号就已经上线了呢。原来这个“豆包”其实是之…...

时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现TCN-LSTM时间卷积长短期记忆神经网络时间序列预测…...

代码随想录训练营二刷第十五天 | 层序遍历10道 226.翻转二叉树 101.对称二叉树 2

代码随想录训练营二刷第十五天 | 层序遍历10道 226.翻转二叉树 101.对称二叉树 2 一、102. 二叉树的层序遍历 题目链接&#xff1a;https://leetcode.cn/problems/binary-tree-level-order-traversal/ 思路&#xff1a;两次while&#xff0c;内层控制每一行的数量&#xff0c…...

nowcoder NC10 大数乘法

题目链接&#xff1a; https://www.nowcoder.com/practice/c4c488d4d40d4c4e9824c3650f7d5571?tpId196&tqId37177&rp1&ru/exam/company&qru/exam/company&sourceUrl%2Fexam%2Fcompany&difficultyundefined&judgeStatusundefined&tags&tit…...

非科班菜鸡算法学习记录 | 代码随想录算法训练营第58天|| 单调栈! 739. 每日温度 496.下一个更大元素 I

739. 每日温度 输入一个数组&#xff0c;找比i天温度高的第一天 知识点&#xff1a;单调栈 状态&#xff1a;看思路自己写 思路&#xff1a; 看自己写的注释&#xff0c;维护一个单调栈 // 版本一 class Solution { public:vector<int> dailyTemperatures(vector<…...

【Luogu】 P5445 [APIO2019] 路灯

题目链接 点击打开链接 题目解法 转化很妙 考虑关路灯 x x x 的操作 令左边第一个未关的路灯为 L L L&#xff0c;右边第一个未关的路灯为 R R R&#xff0c;那么这一次会影响的区间即为 l ∈ [ L 1 , x ] , r ∈ [ x , R − 1 ] l\in[L1,x],\;r\in[x,R-1] l∈[L1,x],…...

Kafka3.0.0版本——消费者(独立消费者消费某一个主题中某个分区数据案例__订阅分区)

目录 一、独立消费者消费某一个主题中某个分区数据案例1.1、案例需求1.2、案例代码1.3、测试 一、独立消费者消费某一个主题中某个分区数据案例 1.1、案例需求 创建一个独立消费者&#xff0c;消费firstTopic主题 0 号分区的数据&#xff0c;所下图所示&#xff1a; 1.2、案…...

基于Simulink的用于电力系统动态分析

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

网站建设定制开发价格/电脑培训班零基础

Linux 下几款程序内存泄漏检查工具 chenyoubing | 发布于 2016-07-23 10:08:09 | 阅读量 93 | 无 写这篇博客的原因呢是因为自己在编写基于Nginx磁盘缓存管理程序&#xff0c;目前已经进入测试阶段&#xff0c;关于这个程序的测试分为几个主要步骤&#xff1a; 1.内存管理是否正…...

学雷锋_做美德少年网站/快速网站推广优化

工作环境&#xff1a;dll源代码是c&#xff0c;在Visual studio 2010中调试。 第一步&#xff0c;调试的准备。 用C#语言编写一个测试dll文件的程序&#xff0c;由于dll源程序是c的&#xff0c;且运行结果是黑屏的&#xff0c;所以C#代码也是运行在黑屏的console环境下。完整代…...

自助网站开发/百度关键词推广工具

Unity的PlayerSetting的OtherSettings里面有两个选项 Optimize Mesh Data和Vertex Compression Optimize Mesh Data官方文档对其的解释很有限 需要引用其他链接来查看详细含义 https://www.bbsmax.com/A/n2d99G3YdD/ 这里列出坑 其具体含义可以在官方文档或者百度找 这些选项对…...

品牌建设模型/湖南有实力seo优化

第三节 又一个EmguCV程序&#xff1a;人脸识别对于用惯了halcon的玩家&#xff0c;对emguCV其实应该是各种不习惯的&#xff0c;特别是数据类型&#xff0c;我本来准备了一个例子&#xff0c;结果最后一个方法的地方因为数据类型的问题&#xff0c;搞了半天没成功&#xff0c;如…...

广州设计公司网站/品牌形象推广

2017全国计算机等级考试一级WPS office考试大纲NCRE(WPS Office)是全国计算机等级考试体系(NCRE)的入门级。下面是YJBYS小编整理的2017全国计算机等级考试一级WPS office考试大纲&#xff0c;希望对你有帮助&#xff01;考试大纲&#xff1a;1.具有使用微型计算机的基础知识(包…...

网站开发费怎么做会计分录/线上推广是什么意思

假设我们有这么一种需求&#xff0c;我们要同时添加年级和年级下面的多个班级&#xff0c;我们一般会像下面这种做法。 Action中我们这样接收&#xff1a; [HttpPost] public ActionResult CreateGrade(string gradeName, IEnumerable<string> classNames) {return View(…...