有一个很普遍使用的包 akshare
我想请教2个问题
问题1:因为一些特定的原因,我公司的Python、Spyder、pandas被分别固定在3.8.10、5.5.4和2.0.3,且版本号不得随意更改。
在此之前,我能够使用akshare,现在却报错(详见附图)。具体来说就是使用akshare版本(1.16.72、1.17.49、1.17.9等数十个版本均不能使用)



问题2:akshare有不少数据都是从东方财富网爬虫得来。现在东方财富网有了反爬虫机制,请问还有什么替代的数据来源吗?
有一个很普遍使用的包 akshare
我想请教2个问题
问题1:因为一些特定的原因,我公司的Python、Spyder、pandas被分别固定在3.8.10、5.5.4和2.0.3,且版本号不得随意更改。
在此之前,我能够使用akshare,现在却报错(详见附图)。具体来说就是使用akshare版本(1.16.72、1.17.49、1.17.9等数十个版本均不能使用)



问题2:akshare有不少数据都是从东方财富网爬虫得来。现在东方财富网有了反爬虫机制,请问还有什么替代的数据来源吗?
上午好☀️☀️☀️️
本答案参考通义千问
针对您提出的两个问题,以下是详细的解答和解决方案:
您提到的环境(Python 3.8.10、Spyder 5.5.4、pandas 2.0.3)是较为老旧的版本。akshare 的某些版本可能不兼容这些旧版库,尤其是 pandas 2.0.3 和 Python 3.8.10。
关键点:
如果条件允许,建议将 Python 升级到 3.9 或更高版本,因为这是 akshare 推荐的运行环境。
注意: 如果您的公司环境限制严格,无法升级 Python,可以尝试以下替代方案。
尝试安装 akshare 1.16.72 之前的版本,例如:
pip install akshare==1.16.6
或:
pip install akshare==1.16.5
说明: 这些旧版本可能对 pandas 的依赖较低,更适配您的环境。
如果您无法升级 Python,可以尝试将 pandas 回退到 1.5.x 或更低版本,以兼容 akshare。
pip uninstall pandas
pip install pandas==1.5.3
注意: 某些 akshare 功能可能在低版本 pandas 上无法正常工作,需测试确认。
有时 pip 缓存可能导致版本冲突,可以尝试清除缓存后重新安装:
pip cache purge
pip install akshare==1.16.6
创建一个独立的虚拟环境,避免全局环境冲突:
python -m venv myenv
source myenv/bin/activate # Linux/Mac
myenv\Scripts\activate # Windows
pip install akshare==1.16.6
akshare 使用了 东方财富网(Eastmoney) 作为数据源之一,但该网站已启用反爬虫机制,导致 akshare 部分接口失效。
以下是一些常用的开源金融数据源,可替代东方财富网的部分功能:
| 数据源 | 说明 | 是否免费 | 备注 | |--------|------|----------|------| | Tushare | 中国 A 股市场数据,提供股票、基金、行业等数据 | ✅ 免费(部分功能需付费) | 推荐使用,功能全面 | | Sina Finance | 提供股票实时行情 | ✅ 免费 | 但部分数据可能不稳定 | | Yahoo Finance | 国际金融市场数据 | ✅ 免费 | 不支持 A 股市场 | | Wind | 专业金融终端,数据丰富 | ❌ 付费 | 适合企业用户 | | Alpha Vantage | 国际股票数据 | ✅ 免费(有限制) | 支持美股、ETF 等 |
pip install tushare
import tushare as ts
# 设置 token(需要注册获取)
ts.set_token('your_token')
# 获取股票信息
df = ts.get_hist_data('000001') # '000001' 是平安银行的代码
print(df)
注意: 需要注册 Tushare 并获取 API Token。
如果您的公司有购买 Wind 数据服务,可以通过 Wind 的 Python 接口进行调用:
import windpyapi as w
w.start()
data = w.wsd("000001.SZ", "open,high,low,close", "2023-01-01", "2023-12-31")
print(data.Data)
注意: 需要安装 Wind 的 Python SDK,并配置好环境。
如果您的公司有较强的技术能力,可以考虑搭建自己的数据采集系统,使用如下工具:
| 问题 | 解决方案 |
|------|----------|
| akshare 在旧环境中报错 | - 升级 Python 或回退 pandas
- 安装兼容版本的 akshare
- 使用虚拟环境隔离依赖 |
| 东方财富网反爬虫导致数据不可用 | - 使用 Tushare 作为替代数据源
- 注册 Wind 数据服务
- 自建数据采集系统 |
如果您需要我为您生成一个基于 Tushare 的完整代码示例,请告诉我具体的数据需求(如股票代码、时间范围等),我可以为您定制化编写代码。