调用yahoo_finance的Share类时报getaddrinfo failed错误是什么原因?
报错原因
[Errno 11001] getaddrinfo failed 本质是DNS解析失败,程序发起网络请求时无法将请求的域名解析为可用的IP地址。触发这个报错的核心原因是你使用的yahoo_finance第三方库已经停止维护多年,雅虎官方早已经关停了该库调用的旧版公开数据接口,对应的接口域名已经下线,自然无法完成解析访问。
解决方案
- 首选方案是直接替换为目前仍在维护的雅虎财经数据接口库
yfinance,这是当前主流的替代方案,安装和使用方式如下:- 执行安装命令:
pip install yfinance - 原获取标的开盘价的逻辑可以替换为以下代码:
import yfinance as yf # 原YHOO标的已退市,此处以AAPL为例,可替换为你需要查询的标的代码 ticker = yf.Ticker("AAPL") # 打印最新交易日开盘价 print(ticker.info['open']) - 执行安装命令:
- 无需尝试修复原
yahoo_finance库的调用问题,旧接口已经完全下线,没有兼容使用的可能 - 若替换库后仍然出现同类DNS报错,检查本地网络是否可以正常访问雅虎财经官网,是否存在代理配置异常,关闭异常代理或者将雅虎财经相关域名加入代理白名单即可解决。
内容的提问来源于stack exchange,提问作者nicomp
相关产品推荐
相关产品推荐

