关于tushare实盘操作的方法

2024-01-04 13:58
文章标签 方法 操作 tushare 实盘

本文主要是介绍关于tushare实盘操作的方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

在学习tushare的用法中:发现无法登录实盘。主要由以下两种原因造成:

1、tushare中现有函数无法识别验证码

tushare/trader/utils.py模块中的get_vcode函数,是zxjt网站交易登录界面验证码识别函数。但由于网站改版等原因,该函数中的vcode=pytessoract.image_to_string(img),对zxjt登录界面的验证码并不能很好的识别。

建立svm机器学习识别验证模块(我创建的pdsi包,包含此模块).

引入该模块函数:from pdsi import cropimage,clrfiles,get_feature, svm_model_test,在get_vcode函数加入相应语句即可识别。见下面:

2、验证码与对应登录网站的地址不一致。

zxjt有两个交易登录界面:newetrade.csc108.com、https://newetradesh.csc108.com,分别对应两个验证码地址。现有的tushare中trade.py模块错位了:将https://newetrade.csc108.com登录界面,使用的却是https://newetradesh.csc108.com/commons/image.jsp的验证码。

以下语句中红色部分为改进代码:

#!/usr/bin/env python
# -*- coding:utf-8 -*- 
#--------------------这个是改后的tushare/trader/utils.py文件
'''
Created on 2016年10月1日
@author: Jimmy Liu
@group : waditu
@contact: jimmysoa@sina.cn
'''
import sys
sys.path.append(r"d:/pdsi")
from pdsi import cropimage,clrfiles,get_feature, svm_model_test
import os
import json
import time
import six
from tushare.trader import vars as vs
import pandas as pd
def nowtime_str():return time.time() * 1000def get_jdata(txtdata):txtdata = txtdata.contentif six.PY3:txtdata = txtdata.decode('utf-8')jsonobj = json.loads(txtdata)return jsonobjdef get_vcode(broker, res):from PIL import Imageimport pytesseract as ptimport ioif broker == 'csc':imgdata = res.content
        img = Image.open(io.BytesIO(imgdata)).convert("1")img.save(r'd:/pdsi/img/imgs/0image.png')#print(type(img),img)#vcode = pt.image_to_string(img)#print("vcodetype",vcode)clrfiles(r'./img/img_split/')cropimage(img,0,4)df_a=pd.DataFrame()for imgname in os.listdir('d:/pdsi/img/img_split/'):aa=get_feature(Image.open('d:/pdsi/img/img_split/'+str(imgname)))aa.insert(0,"2")df_a=df_a.append([aa])df_a.to_csv(r'./img/last_test_pix_xy_new.txt', index=False, sep=r' ', header=False)aaa=svm_model_test()print('验证码类型', type(aaa), aaa)vcode=aaareturn vcode

另外:tushare/trader/trader.py文件中也有误,

    def login(self):self.s.headers.update(vs.AGENT)self.s.get(vs.CSC_PREFIX % (vs.P_TYPE['https'], vs.DOMAINS['csc'],vs.PAGES['csclogin']))res = self.s.get(vs.V_CODE_URL%(vs.P_TYPE['https'],vs.DOMAINS['csc'],#原来的是cscsh,登录的是:newetrader.csc108.com网站,但取的图片却是newetrade.csc108sh.com页面的验证码,造成不能登录。vs.PAGES['vimg']))													if self._login(utils.get_vcode('csc', res)) is False:print('请确认账号或密码是否正确 ,或券商服务器是否处于维护中。 ')self.keepalive()
tushare软件包,trader/trader.py中,验证码图片地址的res语句中,因登录界面登录的是newetrader.csc108.com(不是另一个网站newetradersh.csc108.com),vs.DOMAINS['cscsh']必须改为vs.DOMAINS['CSC']。

特别注意:

如果登录的是newetradersh.csc108.com,那么对应的验证码地址也是:newetradersh.csc108.com/commons/image.jsp

http://blog.sina.com.cn/s/blog_512d07ad0102wwbn.html

这篇关于关于tushare实盘操作的方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/569548

相关文章

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法

《JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法》:本文主要介绍JavaScript中比较两个数组是否有相同元素(交集)的三种常用方法,每种方法结合实例代码给大家介绍的非常... 目录引言:为什么"相等"判断如此重要?方法1:使用some()+includes()(适合小数组)方法2

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

504 Gateway Timeout网关超时的根源及完美解决方法

《504GatewayTimeout网关超时的根源及完美解决方法》在日常开发和运维过程中,504GatewayTimeout错误是常见的网络问题之一,尤其是在使用反向代理(如Nginx)或... 目录引言为什么会出现 504 错误?1. 探索 504 Gateway Timeout 错误的根源 1.1 后端

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum