PyWenCai:用 Python 调用同花顺问财,5 分钟搭好金融数据采集管道
PyWenCai:用 Python 调用同花顺问财,5 分钟搭好金融数据采集管道
【免费下载链接】pywencai获取同花顺问财数据项目地址: https://gitcode.com/gh_mirrors/py/pywencai
PyWenCai 是一个 Python 金融数据获取工具,把同花顺问财的查询语句变成一行代码,让问财 API 调用直接返回结构化 DataFrame,覆盖股票、基金、港股、美股、期货等品种,适合量化研究中的数据自动化需求。
手动采数据的三个麻烦
在写代码之前,先看看不写代码是什么体验:登录问财网页版,输入"市盈率小于30且营收增长率大于20%",把结果表格复制出来,手动粘进 Excel 或 pandas 里,改个条件再重复一遍。一次还好,要做 50 个条件的回测、或者每天收盘后跑一遍,手动操作就成了明显的效率瓶颈。
PyWenCai 做的事很直接:你在问财输入框里敲的自然语言查询,它替你发请求、解析响应,最后交给你的是一张pandas.DataFrame。数据拿到手就能df.sort_values()、存 CSV、喂给回测框架,中间的抓取环节不用自己碰。
五分钟上手:装好依赖,一行代码拿数据
先装 Node.js v16+(库内部要执行一段 JS),再装包:
pip install pywencai然后是一次最基本的 Python 获取股票数据调用:
import pywencai res = pywencai.get(query='市盈率小于30的股票', cookie='你的cookie') print(res.shape)返回的就是 DataFrame,直接当表格用。如果查询结果是详情类内容(比如某个公司的财务分析),返回的是字典,里面可能是文本加若干张表。
能力速览:支持查什么、怎么控制
get()的参数决定了查询的行为,最常用的几项:
query:问财自然语言问句,必填sort_key/sort_order:按结果列名排序,升序asc、降序descloop:True时自动翻页拉全量,设数字n则只拉 n 页sleep:循环请求时每次的间隔秒数retry:单页请求失败的重试次数,默认 10find:传代码列表(如['600519', '000010'])可把指定标的排到最前
资产类别通过query_type切换,支持 A股、指数、基金、港股、美股、新三板、可转债、保险、期货、外汇、理财共 11 类,同一个接口调用方式不变。
场景一:批量选股 📊
import pywencai res = pywencai.get( query='市盈率小于30且市净率小于2.5且净资产收益率大于15%', sort_key='总市值', sort_order='desc', loop=True, cookie='你的cookie' ) print(res[['股票简称', '市盈率(TTM)', '总市值']])把筛选条件写进字符串,全市场一次过,条件组合怎么改都不需要重新打开浏览器,选股池的构建从手工活变成一行调用。
场景二:风险监测定时跑 ⚠️
import pywencai import pandas as pd delist = pywencai.get( query='退市风险提示', sort_key='退市@退市日期', sort_order='asc', cookie='你的cookie' ) risk = pywencai.get( query='连续三年净利润为负或资产负债率大于90%', cookie='你的cookie' ) watchlist = pd.concat([delist, risk], ignore_index=True)两个查询分别盯退市风险和财务异常,合并成一张观察表后用 cron 每天收盘后执行,异常标的进表即提醒,不用人工每天翻公告。
场景三:跨市场数据对比 🌏
import pywencai import pandas as pd a = pywencai.get(query='沪深300成分股', query_type='stock', cookie='你的cookie') hk = pywencai.get(query='恒生指数成分股', query_type='hkstock', cookie='你的cookie') us = pywencai.get(query='标普500成分股', query_type='usstock', cookie='你的cookie') for name, df in [('A股', a), ('港股', hk), ('美股', us)]: print(name, df.shape)换query_type就能在 A股、港股、美股之间来回切,同一套代码框架做跨市场指数成分对比,省去分别登录三个平台导数的功夫。
实用进阶:三个绕不开的配置
- Cookie 三分钟拿法:问财调整了登录策略,
cookie现在是必填项。打开 wencai.com 登录,F12 进 Network 面板,任选一个请求,复制 Request Headers 里cookie字段的完整值传入即可(参考上文截图中的红箭头位置)。cookie 会过期,失效后重新复制一次。 - 控制请求频率:批量查询时把
sleep设为 1-2 秒。平台对高频调用有屏蔽机制,慢一点换来的是查询能稳定跑完,别用循环无间隔地刷。 - 本地缓存:行情快照、指数成分这类数据按"查询条件 + 日期"做缓存键,命中本地文件就直接读,miss 了再发请求。pandas 的
to_pickle加一个字典式查询参数足够应付大部分场景。
合规与风险提醒 ⚖️
- 本项目是开源社区的效率工具,并非同花顺官方出品,使用前请确认你的用途符合问财平台的用户协议。
- 低频使用是项目明确的原则,高频调用会触发屏蔽,调用前自行评估技术与法律风险。
- cookie 属于个人身份凭证,不要提交进代码仓库,也不要把拉取的敏感数据外泄。
写在最后
PyWenCai 把"打开网页、复制粘贴"这一段从数据流程里删掉了,剩下的分析、回测、监控全部可以在 Python 里连起来跑。项目遵循 MIT 协议,代码在仓库 pywencai(如需 clone 使用git clone https://link.gitcode.com/i/5681f47dc5bb242b890b27bb5a8de8b6),接口细节看 README 即可,也欢迎到社区的"数据与交易"星球交流使用心得。
【免费下载链接】pywencai获取同花顺问财数据项目地址: https://gitcode.com/gh_mirrors/py/pywencai
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
