使用pandas_datareader从Yahoo Finance获取AAPL股票数据时触发AttributeError错误
使用pandas_datareader从Yahoo Finance获取AAPL股票数据时触发AttributeError错误
嘿,我懂你碰到的这个麻烦——用pandas_datareader拉取雅虎财经的AAPL股票数据时触发了AttributeError,本质原因是雅虎财经的页面结构和接口已经更新了,旧版的pandas_datareader没办法正确解析新的页面内容。下面给你几个实用的解决办法:
方法1:改用yfinance库(最推荐)
yfinance是专门针对雅虎财经维护的库,适配性和稳定性都比pandas_datareader好太多,而且用法和你之前的代码差不多,上手很快:
- 先安装库:
pip install yfinance - 替换你的代码:
这个方法基本能直接解决问题,因为import yfinance as yf # 获取AAPL的历史股票数据 data = yf.download('AAPL') # 查看前5行数据 data.head()yfinance会实时跟进雅虎的接口变化。
方法2:升级pandas_datareader并尝试指定时间范围
如果你坚持要用pandas_datareader,可以先升级到最新版本,再尝试加上时间范围参数(有时候能绕过部分解析异常):
- 升级库:
pip install --upgrade pandas_datareader - 修改代码:
不过要注意,这个方法不一定长期有效,因为雅虎的接口可能还会变。import pandas_datareader as web from datetime import datetime start_date = datetime(2020, 1, 1) end_date = datetime(2024, 1, 1) data = web.DataReader('AAPL', data_source='yahoo', start=start_date, end=end_date) data.head()
方法3:检查网络环境
有时候网络代理、地区限制或者网络波动会导致无法正确获取雅虎财经的页面内容,进而触发解析错误。你可以试试切换到稳定的网络环境,或者确认自己能正常访问雅虎财经的网页。
总的来说,最靠谱的还是直接换成yfinance,毕竟pandas_datareader对雅虎财经的支持已经不太稳定了。
备注:内容来源于stack exchange,提问作者user22017137
相关产品推荐
相关产品推荐

