簡體   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