繁体   English   中英

从 yfinance 调用“下载”后出现 SSL 错误

[英]SSL error after “download” call from yfinance

我在 Spyder(Python 3.7)中安装了 yfinance,但是当我进行基本调用时,例如:

import yfinance as yf


df_yahoo = yf.download('AAPL', 
                       start='2000-01-01', 
                       end='2010-12-31',
                       progress=False)

print(df_yahoo)

我收到一条错误消息:

线程 Thread-9 中的异常:回溯(最近一次调用):
文件“c:\\users\\miniconda3\\lib\\site-packages\\urllib3\\connectionpool.py”,第 672 行,urlopen chunked=chunked,文件“c:\\users/miniconda3\\lib\\site-packages\\urllib3\\connectionpool.py” py”,第 376 行,在 _make_request self._validate_conn(conn) 文件“c:\\users\\miniconda3\\lib\\site-packages\\urllib3\\connectionpool.py”,第 994 行,在validate_conn conn.connect() 文件“c: \\users\\miniconda3\\lib\\site-packages\\urllib3\\connection.py”,第 360 行,连接 ssl_context=context,文件“c:\\users\\miniconda3\\lib\\site-packages\\urllib3\\util\\ssl .py” ,第 370 行,在 ssl_wrap_socket 中返回 context.wrap_socket(sock, server_hostname=server_hostname) 文件“c:\\users\\miniconda3\\lib\\ssl.py”,第 423 行,在 wrap_socket session=session 文件“c:\\users\\miniconda3\\ lib\\ssl.py”,第 870 行,在 _create self.do_handshake() 文件“c:\\users\\miniconda3\\lib\\ssl.py”,第 1139 行,在 do_handshake self._sslobj.do_handshake() ssl.SSLCertVerificationError: [ SSL:CERTIFICATE_VERIFY_FAILED] 证书验证失败:证书中的自签名证书吃了链 (_ssl.c:1076)

在处理上述异常的过程中,又发生了一个异常:

回溯(最近一次调用):文件“c:\\users\\miniconda3\\lib\\site-packages\\requests\\adapters.py”,第 449 行,发送超时=超时文件“c:\\users\\miniconda3\\lib\\site -packages\\urllib3\\connectionpool.py", line 720, in urlopen method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2] File "c:\\users\\miniconda3\\lib\\site- packages\\urllib3\\util\\retry.py”,第 436 行,递增引发 MaxRetryError(_pool, url, error or ResponseError(cause)) urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='query1.finance.yahoo.com', port=443): 最大重试次数超过 url: /v8/finance/chart/AAPL?period1=946681200&period2=1293750000&interval=1d&includePrePost=False&events=div%2Csplits(由 SSLError(SSLCertVerificationError:1, CERTIFICATE_FSSL失败:证书链中的自签名证书 (_ssl.c:1076)')))

在处理上述异常的过程中,又发生了一个异常:

回溯(最近一次调用):文件“c:\\users\\miniconda3\\lib\\threading.py”,第 926 行,在 _bootstrap_inner self.run() 文件“c:\\users\\miniconda3\\lib\\threading.py”中,线870,在运行self._target(* self._args,**自kwargs)文件“C:\\用户\\ miniconda3 \\ LIB \\站点包\\ multitasking_初始化的.py”,线路102,在_run_via_pool回报被叫(* args, **kwargs) 文件“c:\\users\\miniconda3\\lib\\site-packages\\yfinance\\multi.py”,第 167 行,在 _download_one_threaded 操作、期间、间隔、前置、代理、舍入)文件“c:\\ users\\miniconda3\\lib\\site-packages\\yfinance\\multi.py”,第 182 行,在 _download_one rounding=rounding, many=True)文件“c:\\users\\miniconda3\\lib\\site-packages\\yfinance\\base.py ",第 150 行,历史数据 = _requests.get(url=url, params=params, proxies=proxy) 文件“c:\\users\\miniconda3\\lib\\site-packages\\requests\\api.py”,第 76 行,在 get return request('get', url, params=params, **kwargs) File "c:\\users\\miniconda3\\lib\\site-packages\\requests\\api.py", line 61, in request return session.req uest(method=method, url=url, **kwargs) 文件 "c:\\users\\miniconda3\\lib\\site-packages\\requests\\sessions.py", line 530, in request resp = self.send(prep, * *send_kwargs) 文件“c:\\users\\miniconda3\\lib\\site-packages\\requests\\sessions.py”,第 643 行,发送 r = adapter.send(request, **kwargs) 文件“c:\\users\\miniconda3 \\lib\\site-packages\\requests\\adapters.py”,第 514 行,在发送中引发 SSLError(e, request=request) requests.exceptions.SSLError: HTTPSConnectionPool(host='query1.finance.yahoo.com', port= 443): 最大重试次数超过 url: /v8/finance/chart/AAPL?period1=946681200&period2=1293750000&interval=1d&includePrePost=False&events=div%2Csplits (由 SSLError 引起 (SSLCertVerificationError(1, '[SSLCertificate_FAIVERLED]证书链中的自签名证书 (_ssl.c:1076)')))

此外,Spyder 似乎陷入某种循环,我必须手动中断它。

有人能帮我一下吗?

非常感谢

我相信问题来自外部来源,也许雅虎财经宕机了? 我试过运行你的代码,它对我来说很好。 (PyCharm,Python 3.7)

在 MacOS Big Sur 上,您需要在 Python 3.9 中安装证书。

cd /Applications/Python\ 3.9/
./Install\ Certificates.command

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM