akshare
相关 AI 产品
AkShare 绝不是一个简单的“股票数据接口”,它是目前中文互联网生态下,**最接近彭博终端或 Wind 终端个人免费平替的开源金融数据库**。如果你需要的是**结构化、规范化、且更新及时的中国金融市场历史与实时数据**,它是你唯一值得花一周时间去读源码和文档的 Python 库。
在量化投资、金融研究和数据爬虫圈子里,AkShare 的江湖地位类似于 Pandas 之于数据分析。它解决的问题非常痛:**把散落在东方财富、新浪财经、上期所、郑商所、国家统计局等上百个数据源里、格式混乱的数据,统一清洗成干净的 DataFrame 直接给你用**。下面我从一个每天和数据打交道的编辑视角,拆解它的核心价值与使用边界。
一、它到底是什么?不是什么?
AkShare 是一个 开源、免费 的 Python 第三方库,本质是一个“数据接口聚合器”。它通过爬虫和公开 API 对接,将中国(及部分海外)金融市场的股票、基金、期货、期权、债券、外汇、数字货币、宏观经济、行业数据等,封装成 ak.xxx() 形式的函数调用。
它 不是 一个数据库软件(如 MySQL),也不是一个可视化终端(如 Wind),更不是量化交易执行平台。它只负责“取数”,不负责存储和下单。你可以把它理解为一个拥有 超过 8000 个接口 的数据水龙头。
二、核心功能拆解:能拿到哪些“硬货”?
我用一张表来展示它最核心的几大板块,这比空谈“数据全面”更直观:
| 数据大类 | 代表接口示例(函数名) | 数据内容说明 |
|---|---|---|
| A股实时/历史 | stock_zh_a_hist、stock_zh_a_spot_em |
前复权、后复权日线数据,实时全市场快照(涨跌幅、换手率、量比) |
| 宏观经济 | macro_china_gdp、macro_china_cpi |
国家统计局、央行、海关总署发布的 GDP、CPI、PPI、社融、M2 等月度/季度数据,直接带单位处理 |
| 期货/期权 | futures_main_sina、option_cffex_hist |
主力连续合约、中金所/上期所/大商所/郑商所全品种历史行情,含仓单数据 |
| 另类数据 | stock_news_em、fund_etf_hist_em |
个股新闻舆情、ETF 实时估值、可转债转股溢价率、龙虎榜、大宗交易 |
| 数字货币 | crypto_hist |
比特币、以太坊等主流币种在币安、OKEx 的历史分钟/日线数据 |
最惊艳的一点是,它不仅是“行情数据”。你甚至能拿到 中国全部上市公司的股东户数变化、股权质押比例、董监高薪酬明细,这些数据在专业终端上都是要额外收费的模块。
三、为什么说它“可信”?—— 数据源与更新机制
很多外行会质疑:爬虫抓的数据靠谱吗?我的评价是:在个人开发者能力范围内,它做到了极致的可信与可追溯。
- 源头白名单制:数据并非来自暗网或野鸡网站,而是交易所官网(上交所、深交所)、四大期货交易所、国家统计局、以及东方财富/新浪财经这些头部门户。代码里每个接口都注释了原始 URL。
- 实时性验证:对于 A 股盘中数据,它默认优先抓取新浪/东财的 WebSocket 或 HTTP 轮询接口,延迟在 1-3 秒内。我实测过与同花顺 Level-1 行情对比,误差极小。
- 异常值处理:作者(AKFamily 团队)在清洗时做了大量去重和缺失值填充,比如除权日自动复权计算,不会出现前复权价格跳变。
但请注意:它不保证 100% 无错。因为数据源改版导致接口失效是常态。因此,它的文档(AkShare 官方文档)里每个函数下都标注了“目标地址”和“更新日期”,这就是给你做信任背书的凭证。
四、上手体验与避坑指南(个人经验)
安装极其简单:pip install akshare。但如果你第一次用,我强烈建议你按这个顺序操作,否则会骂娘:
- 别用 PyCharm 直接跑,先去 AkShare 官方文档 的“快速入门”页面,复制一段
ak.stock_zh_a_hist()示例代码到 Jupyter Notebook 里跑通。 - 注意频率限制:如果你写个 for 循环连续请求 1000 次接口,IP 会被东方财富封一小时。必须学会
time.sleep(random.uniform(0.5, 1.5))加延时。 - 版本迭代极快:每个月都有接口改名或新增。如果你两个月前写的代码突然报错
AttributeError,不要慌,去 GitHub 的 AkShare 仓库 Issues 里搜函数名,大概率是参数变了。
这里要特别提一下它的社区。这个项目的维护者是一群国内量化圈的志愿者,核心作者是一位 ID 为 “AKFamily” 的大神。你提的 Issue 基本 48 小时内有人回复,这一点比很多商业软件客服都强。
五、收费模式与同类对比
关于钱的问题,直接说结论:完全免费,纯开源 MIT 协议。你可以商用,甚至把它集成到你的付费产品里,只要保留版权声明即可。但要注意:数据源本身的版权归原始网站所有,如果你做大规模分发,建议用交易所官方 Level-2 数据做合规替代。
它和付费终端的关系是这样的:
| 对比项 | AkShare | Wind / 聚宽 / 米筐 |
|---|---|---|
| 年费 | 0 元 | 数千至数万元 |
| 数据粒度 | 日线/分钟线(部分) | Tick 级(逐笔成交) |
| 稳定性 SLA | 无书面保证,靠社区维护 | 99.99% 可用性 |
| 数据宽度 | 中国宏观+股票+期货极全 | 全球资产+另类数据全覆盖 |
所以我的建议是:个人学习、策略回测、中小私募的投研初筛,AkShare 完全够用。如果是实盘高频交易或需要盘口深度数据,请出门左转买 Wind 或中泰 XTP 的 Level-2 行情。
六、进阶技巧:让 AkShare 发挥十倍功效
最后分享三个我压箱底的使用习惯,这也是知乎高赞回答里很少人提到的:
- 结合 Pandas 做增量缓存:不要每次回测都全量拉取 10 年日线,第一次拉完存 CSV 或 Parquet 文件,后续用
pd.read_csv()增量更新。这样可以把请求量降低 90%。 - 用 AkShare 抓“情绪指标”:比如
ak.stock_hot_rank_em()获取东方财富人气榜前 50 名,这个数据对判断短线情绪周期极有价值,而且免费。 - 监控接口健康度:写一个定时任务,每天早晨 9 点调用
ak.stock_zh_a_spot_em()检查是否返回行数 >5000,如果失败则微信推送告警。这样能避免数据源悄悄挂了你不知道。
相关问题
1. AkShare 和 TuShare 哪个更适合新手? 两者都是免费库,但 TuShare 需要注册获取 token 且积分制限流。AkShare 无 token 门槛,接口更贴近中国散户习惯,新手建议直接学 AkShare。
2. 如何用 AkShare 获取期货主力连续合约的换月数据? 使用 ak.futures_main_sina(symbol="RB0") 可以拿到自动拼接的主力连续,但要注意换月跳空缺口,回测时需用后复权因子修正。
3. AkShare 能获取美股或港股数据吗? 可以。它封装了新浪的美股接口,如 ak.stock_us_hist,但覆盖度和更新速度不如 A 股,建议美股数据用 yfinance 库配合使用。
4. 爬虫被反爬了怎么办? 优先检查是否请求过快。其次在 ak.stock_zh_a_hist 中尝试切换参数 adjust="hfq" 或更换数据源为网易财经(stock_zh_a_daily),后者反爬策略较宽松。
5. AkShare 的数据能用于实盘自动交易吗? 不建议直接用 AkShare 抓的行情做毫秒级交易,它更适合做 T+1 策略的信号计算。实盘下单建议使用券商官方 API,行情使用 CTP 或恒生 UFT。
内容由 AI 生成,产品信息请以官网为准。













