pywencai 同花顺问财数据获取工具完全指南 🌐
项目速览:从0到1掌握A股数据利器
pywencai 是一款专注于同花顺问财数据(Ths iFinD Financial Data)获取的Python工具包,让你无需手动操作网页即可批量获取股票市场数据。无论你是量化交易爱好者还是财务数据分析人员,这个工具都能帮你快速搭建数据管道。难度等级:🌿(中级)
图1:pywencai工作流程示意图 - 从问财接口到结构化数据的完整链路
核心功能模块解析 🧩
1. 数据请求引擎 wencai.py 🚀
核心入口函数 get() 是获取数据的总调度中心,支持以下关键特性:
🔴 重试机制:默认10次重试避免网络波动(参数 retry=15 可调整)
🟢 智能分页:通过 loop=True 自动处理多页数据(每页默认100条)
🟡 专业版支持:设置 pro=True 可访问高级数据接口
# 基础用法示例
import pywencai
df = pywencai.get(query="市值大于100亿的创业板股票", loop=True)
术语:条件参数(Condition Parameters)
问财接口用于筛选数据的核心参数集合,包含查询语句、分页信息等关键配置,相当于SQL查询中的WHERE子句。
2. 数据转换处理器 convert.py 🔄
这个模块就像数据的"翻译官",将问财返回的复杂JSON结构转化为直观的Python对象:
- 多类型适配:支持
xuangu_tableV1、container、txt等10+种数据格式 - 智能解析:自动识别嵌套结构,将表格数据转为
pandas.DataFrame - URL参数提取:通过
parse_url_params()处理接口跳转链接
🌱 新手友好提示:当你看到 show_type_handler_dict 这个变量时,不用紧张!它只是一个"类型-处理器"映射表,告诉程序如何解析不同格式的返回数据。
3. 请求头生成器 headers.py 🔑
负责构建符合问财接口要求的请求头信息,包含两大核心功能:
动态Token生成:通过执行 hexin-v.bundle.js 生成实时有效的 hexin-v 参数
User-Agent伪装:默认使用 fake_useragent 库随机生成浏览器标识,避免被识别为爬虫
# 自定义Cookie示例(需替换为个人实际Cookie)
headers = pywencai.headers(cookie="v=A1B2C3...")
常见误解澄清
❌ "必须登录同花顺账号才能使用"
✅ 实际上工具支持匿名访问基础数据,登录后(提供Cookie)可获取更多高级指标
上手实操:3分钟完成第一个数据采集任务 ⏱️
环境准备
🟡 前置依赖:Python 3.7+ 和 Node.js(用于运行JS加密逻辑)
# 克隆仓库
git clone https://gitcode.com/gh_mirrors/py/pywencai
cd pywencai
# 安装依赖
pip install -r requirements.txt
npm install # 安装JS运行环境依赖
基础查询:获取新能源汽车概念股
import pywencai
# 简单查询
df = pywencai.get(
query="新能源汽车产业链概念股",
loop=True, # 自动获取所有 pages
log=True # 显示调试信息
)
print(df.head())
参数调优指南 ⚙️
| 参数名 | 作用 | 推荐配置 | 高级用法 |
|---|---|---|---|
pro |
启用专业版接口 | pro=False |
付费用户设为True获取深度数据 |
perpage |
每页数据量 | perpage=100 |
最大支持200条/页 |
request_params |
额外请求参数 | {"timeout": 15} |
设置proxies支持代理 |
query_type |
数据类型过滤 | query_type="stock" |
可选"fund"基金数据 |
🟢 性能优化:当获取超1000条数据时,建议设置 sleep=1 避免触发频率限制
避坑指南与高级技巧 🛡️
常见错误解决方案
🔴 Token失效:出现 hexin-v 相关错误时,执行 npm update 更新JS依赖
🔴 Cookie过期:从浏览器复制最新Cookie(F12→Application→Cookies)
🔴 数据为空:检查查询语句是否符合问财语法(如"市值>100亿"而非"市值大于100亿")
企业级应用建议
- 缓存机制:对高频查询结果进行本地缓存(推荐
joblib或redis) - 异步请求:结合
asyncio和aiohttp重写请求部分提升并发效率 - 异常监控:添加
try-except块捕获requests.exceptions.ConnectionError
专业技巧:通过
request_params={"proxies": {"http": "http://ip:port"}}配置代理池,可显著降低IP封禁风险
常见问题解答 💡
Q: 为什么返回的数据和网页版问财不一致?
A: 免费用户存在数据延迟,且部分高级指标(如北向资金流向)需要 pro=True 权限
Q: 最多能获取多少条数据?
A: 未登录用户单次查询限1000条,登录后可提升至5000条,分页参数 loop=50 可控制最大页数
Q: 如何处理中文乱码问题?
A: 确保环境编码为UTF-8,Windows用户可在代码开头添加:
import sys
sys.stdout.reconfigure(encoding='utf-8')
通过本指南,你已经掌握了pywencai的核心用法和进阶技巧。无论是构建量化交易策略还是进行市场分析,这个工具都能成为你的得力助手。记得定期更新仓库以获取最新功能支持哦! 📈
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00