关于免费获取中国股票数据,我个人最常用也最推荐的是 AkShare——它就像一把「瑞士军刀」,覆盖广、更新快、开箱即用,尤其适合快速获取实时行情、资金流、行业数据等场景。下面从几个角度详细说说我的使用体验和理由:
✅为什么我偏爱 AkShare?
1.零门槛,无需注册/Token
- 对比 Tushare(需注册获取Token)和 Baostock(部分接口需登录),AkShare 无需任何认证,复制代码直接跑通。
- 适合快速验证想法,避免注册流程打断思路。
2.数据源丰富且实时性强
- 聚合 新浪、腾讯、东方财富、交易所 等多源数据,实时行情延迟低(3~15秒)。
- 覆盖股票、基金、期货、期权、宏观、外汇、加密货币等 全品类金融数据。
3.接口设计简洁直观
- 函数命名清晰(如 stock_zh_a_hist 代表A股历史数据),参数少且符合直觉。
- 返回标准的 pandas.DataFrame,无需二次解析。
4.社区活跃,更新迅猛
- GitHub 上 ⭐️ 22k+ Star,开发者响应问题及时(项目链接)。
- 几乎每周更新,新增接口快(如北向资金、龙虎榜等特色数据)。
AkShare 高频使用场景 & 代码示例
▶️场景1:批量下载全A股实时行情
import akshare as ak# 一键获取全市场4800+只股票实时行情(含涨跌幅、成交量、换手率等)df_real_time = ak.stock_zh_a_spot_em()print(f"当前涨停股票数:{len(df_real_time[df_real_time['涨跌幅'] >= 9.9])}")
✅ 输出字段:代码,名称,最新价,涨跌幅,成交量(手),成交额(元),换手率,市盈率...
▶️场景2:获取个股历史K线(带复权)
# 获取贵州茅台 (600519) 2024年日线前复权数据df_maotai = ak.stock_zh_a_hist( symbol="600519", period="daily", adjust="qfq", # 可选 qfq(前复权), hfq(后复权), ''(不复权) start_date="20240101", end_date="20240630")# 用matplotlib绘制K线import matplotlib.pyplot as pltplt.figure(figsize=(12, 6))plt.plot(df_maotai['日期'], df_maotai['收盘'], label='贵州茅台')plt.title('2024年贵州茅台前复权价格走势')plt.legend()plt.show()
⚖️什么情况下选其他工具?
虽然我主力用 AkShare,但特定场景会切换工具:
- 需要分钟级K线(>5年历史) → 切到 BaoStock(AkShare的分钟数据覆盖较短)。
- 需要完整财务指标(ROE/毛利率等) → 用 Tushare Pro(需积分,但字段更规范)。
- 需要盘口订单流/Level2数据 → 用 米筐(RiceQuant) 等付费工具(非免费)。
我的高效使用心法
- 善用 ak.get_futures_contracts() 等函数:先查支持的数据接口列表,避免重复造轮子。
- 搭配 polars 替代 pandas:当数据量 >100万行时,用 polars 加速处理(AkShare原生支持)。
- 错误重试机制:用 tenacity 库自动重试网络请求(应对接口限流)。
from tenacity import retry, stop_after_attempt@retry(stop=stop_after_attempt(3))def safe_ak_query(): return ak.stock_zh_a_spot()safe_ak_query()
总结一句话:
「日常用 AkShare,分钟线用 BaoStock,基本面用 Tushare」
90% 的需求 AkShare 都能优雅解决,它的 免注册+多源聚合 特性完美契合 Pythonic 的「快速原型」哲学。
如果需要某类特定数据(如可转债、期权波动率、行业资金流),可以告诉我具体需求,我直接给你写 AkShare 的代码模板!
友情提示
本站部分转载文章,皆来自互联网,仅供参考及分享,并不用于任何商业用途;版权归原作者所有,如涉及作品内容、版权和其他问题,请与本网联系,我们将在第一时间删除内容!
联系邮箱:1042463605@qq.com