使用yfinance获取标普500股票代码列表出错,现仅返回'-'列表
问题原因分析:si.tickers_sp500()返回全'-'列表
Yahoo Finance页面结构变更:yahoo_fin的
tickers_sp500()函数依赖抓取并解析Yahoo Finance的标普500成分股页面来获取代码。如果Yahoo近期调整了该页面的HTML结构、元素标识或数据加载方式,旧版本库的解析逻辑会直接失效,无法正确提取股票代码,最终返回全是'-'的无效列表。yahoo_fin版本未更新:如果你的库停留在旧版本,开发者针对页面结构变化做的修复不会生效。这类依赖网页抓取的第三方库,一旦目标页面迭代,旧版本必然会出现解析失败的情况。
临时访问异常:虽然概率不高,但如果请求被Yahoo的反爬机制拦截,或者网络波动导致页面内容未完整加载,也会让解析函数拿不到有效数据,返回异常结果。
可行的解决办法
- 升级yahoo_fin到最新版:执行命令
pip install --upgrade yahoo_fin - 换用更稳定的替代方案:用
yfinance获取标普500成分股,示例代码:
import yfinance as yf sp500 = yf.Ticker("^GSPC") tickers = sp500.components.index.tolist()
内容的提问来源于stack exchange,提问作者MAlbertini
相关产品推荐
相关产品推荐

