从零开始玩量化5Python程序获取同花顺问财数据
2022年9月25日更新
最近好几个兄弟反馈问财做了最大分页数的限制,无法查询所有数据了,我最近抽空处理了一下,现在把结果写在这里。
处理分页用到的代码较多,我就不全部贴了,我把功能封装成了一个python包pywencai
,放到Github上了,感兴趣的可以去获取。
Github地址:https://github.com/zsrl/pywencai
PyPI地址:https://pypi.org/project/pywencai/
详细用法可以去上边的地址看,我这里写下示例
安装
由于包中执行了js代码,所以需要先保证你的计算机里有js运行环境,所以先安装一下node.js
之后安装包。
pip install pywencai
注:支持python3.8 版本,低版本环境请升级python后使用。
用法
import pywencai
res = pywencai.get(question='退市股票', loop=True)
print(res)
loop参数
loop
参数即可以解决分页限制的问题,默认不传时为False
,最多只能返回100条数据,传True
,程序会循环分页,请求所有数据,返回全部结果。另外,你也可以将loop
设置为一个数字,指定循环分页的次数。
若使用此参数,会循环请求多次,会增加程序执行的时间,不过目前也只能做到这样了,我尝试了一下,还算可以接受。
使用时若遇到问题,可以留言或私信。
以下为旧版方法,无法处理分页问题(已作废)
代码
直接上代码
import os
import execjs
import json
import requests as rq
import pandas as pd
def getToken():
with open(os.path.join(__file__, os.pardir, './hexin-v.js'), 'r') as f:
jscontent = f.read()
context= execjs.compile(jscontent)
return context.call("v")
def getWencai(**kwargs):
data = {
'perpage': 10000,
'page': 1,
'secondary_intent': 'stock',
'iwcpro': '1',
'source': 'Ths_iwencai_Xuangu',
**kwargs
}
res = rq.request(
method='POST',
url='http://www.iwencai.com/unifiedwap/unified-wap/v2/result/get-robot-data',
data=data,
headers={
'hexin-v': getToken(),
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
}
)
result = json.loads(res.text)
list = result['data']['answer'][0]['txt'][0]['content']['components'][0]['data']['datas']
return pd.DataFrame.from_dict(list)
hexin-v.js
这个文件我放到我的网站上了,可以直接打开链接下载https://beima.xyz/hexin-v.js- 这个方法我之前用
node.js
写过,现在移植到python
程序,区别在于这里必须要改掉requests
发送请求时的默认User-Agent
,而且不可以设置为None
,应该是问财官方做了一些反爬的过滤,解决方法就是直接把你浏览器里的User-Agent
复制过来就好了,老法师应该都能懂。
效果展示
简单封装一下,非常实用。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhghbebb
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13