easyquotation获取港股的bug

news/2024/7/8 5:02:03 标签: python

easyquotation:实时股票数据获取

easyquotation库,是一个非常好用的实时股票数据获取库,可以实时获取新浪、腾讯的免费股票行情,集思路的分级基金行情

安装

项目地址:https://github.com/shidenggui/easyquotation.git

pip install easyquotation

用法

python">import easyquotation

quotation = easyquotation.use('sina') # 新浪 ['sina'] 腾讯 ['tencent', 'qq'] 

#获取所有股票行情
quotation.market_snapshot(prefix=True) # prefix 参数指定返回的行情字典中的股票代码 key 是否带 sz/sh 前缀

#获取单支股票
quotation.real('162411') # 支持直接指定前缀,如 'sh000001'

#获取多支股票
quotation.stocks(['000001', '162411']) 

#同时获取股票和行情
quotation.stocks(['sh000001', 'sz000001'], prefix=True) 

#获取集思路行情
quotation = easyquotation.use('jsl') # ['jsl']
quotation.set_cookie('从浏览器获取的集思录 Cookie')
quotation.funda() # 参数可选择利率、折价率、交易量、有无下折、是否永续来过滤
quotation.fundb() # 参数如上

#获取腾讯分时图数据
quotation = easyquotation.use("timekline")
data = quotation.real(['603828'], prefix=True)

#获取日k数据
quotation  = easyquotation.use("daykline")
data = quotation.real(['00001','00700'])

#获取港股数据
quotation = easyquotation.use("hkquote")
data = quotation.real(['00001','00700'])

bug

获取港股数据,easyquotation传数字股票代码没问题,如果获取指数数据如恒生指数(HSI),传入HSI后,返回数据为空,bug原因是返回的response封装,正则表达式只匹配了数字,所以传入字母代码后没有进行封装。

代码bug

在easyquotation库的HKQuote类中,format_response_data函数的正则表达式:r’v_r_hk\d+=“.*?”',\d匹配了数字股票代码,港股的指数代码是字母的,所以将\d改成 .

python">    def format_response_data(self, rep_data, **kwargs):
        stocks_detail = "".join(rep_data)

        stock_dict = {}
        for raw_quotation in re.findall(r'v_r_hk\d+=".*?"', stocks_detail):
            quotation = re.search('"(.*?)"', raw_quotation).group(1).split("~")
            stock_dict[quotation[2]] = dict(
                lotSize=float(quotation[0]),
                name=quotation[1],
                price=float(quotation[3]),
                lastPrice=float(quotation[4]),
                openPrice=float(quotation[5]),
                amount=float(quotation[6]),
                time=quotation[30],
                dtd=float(quotation[32]),
                high=float(quotation[33]),
                low=float(quotation[34]),
            )
        return stock_dict

bug修改方式

继承HKQuote类,重写format_response_data函数,然后如果要获取港股数据,使用自己的类

python">import re
from easyquotation.hkquote import HKQuote

class IHKQuote(HKQuote):
	def format_response_data(self, rep_data, **kwargs):
        stocks_detail = "".join(rep_data)

        stock_dict = {}
        for raw_quotation in re.findall(r'v_r_hk.+=".*?"', stocks_detail):
            quotation = re.search('"(.*?)"', raw_quotation).group(1).split("~")
            stock_dict[quotation[2]] = dict(
                lotSize=float(quotation[0]),
                name=quotation[1],
                price=float(quotation[3]),
                lastPrice=float(quotation[4]),
                openPrice=float(quotation[5]),
                amount=float(quotation[6]),
                time=quotation[30],
                dtd=float(quotation[32]),
                high=float(quotation[33]),
                low=float(quotation[34]),
            )
        return stock_dict

调用方式

python">from amend_easyquotation import IHKQuote

quotation = IHKQuote()
stock = quotation.stocks(['HSI'])

http://www.niftyadmin.cn/n/5536598.html

相关文章

Trinity Bots战场以及游荡佣兵设置相关

bots开关 NpcBot.Ebable.Raid 1 打开raid允许,这样团本也能带佣兵进去打了。 NpcBot.Ebable.BG 1 打开战场允许,这样战场也能带佣兵进去了。 NpcBot.Ebable.Arena 1 竞技场带佣兵。 默认已经开放的是: NpcBot.Ebable.Dungeon 1…

使用zdppy_api+onlyoffice word文档在线共同编辑,附完整的vue3前端代码和python后端代码

参考文档: https://api.onlyoffice.com/zh/editors/basic https://api.onlyoffice.com/zh/editors/coedit 基本的架构思考: 文档表:记录的是文档信息 key:这个key可以标识唯一的一个文档,可以是文档的hash值fileType…

Selenium:原理与使用指南

文章目录 简介Selenium 的原理安装 Selenium基本使用示例代码说明 常用操作查找元素交互操作等待处理弹窗 高级功能截屏执行 JavaScript切换窗口 结论 简介 Selenium 是一个用于 Web 应用程序自动化测试的强大工具。它提供了一系列库和工具,支持多种浏览器和编程语…

uniapp中webSocket使用Https访问连接失败

环境 uniapp写微信小程序,使用webSocket连接后台spring boot通信 在开发环境中使用 ws://xxx 连接正常, 但是微信小程序需要配置https访问,webSocket需要使用 wss:// 来连接, 使用wss:// 域名 访问时,一直连接不上&a…

在docker配置Nginx环境配置

应用于商业模式集中,对于各种API的调用,对于我们想要的功能进行暴露,对于不用的进行拦截进行鉴权。用于后面的付费 开发环境 正式上线模式 一、常用命令 停止:docker stop Nginx重启:docker restart Nginx删除服务&a…

Spring Boot中使用SpringEvent组件

Spring的事件机制是基于观察者模式的实现,主要由以下三个部分组成: 事件(Event):事件是应用中发生的重要事情,通常是一个继承自ApplicationEvent的类。 事件发布器(Publisher)&…

python绘制领域矩形

问题描述: 使用python书写代码实现以下功能:给定四个点的坐标,调用一个函数,可以使原来的四个点分别向四周上下左右移动15距离,分别记录下移动后的坐标,然后画出内侧矩形和外侧矩形 代码: im…

代码随想录打卡第十四天

代码随想录–二叉树部分 day14 二叉树第二天 文章目录 代码随想录--二叉树部分一、力扣226--反转二叉树二、力扣101--对称二叉树三、力扣104--二叉树的最大深度四、力扣111--二叉树的最小深度 一、力扣226–反转二叉树 代码随想录题目链接:代码随想录 给你一棵二叉…