実現したいこと
requestsコマンドのSSLエラーを解決したい
前提
Python初心者です。Jupyterlabを使ってPythonでWebスクレイピングを勉強しています。
requests.get()で指定したURLの情報を取ろうとしているのですが、エラーを吐いてしまい、原因がわかりません。
参考書に従って作業をしているのですがエラーの場合の対処などが載っておらず、初心者のため具体的に何が問題となっているエラーなのかもわからない状態です。
発生している問題・エラーメッセージ
※全てを貼り付けると文字数オーバーしてしまったため中間部分を省略させていただきました。省略部分も同じようなFile ~env/...などの書き出しのメッセージでした。 --------------------------------------------------------------------------- SSLError Traceback (most recent call last) File ~/env/lib/python3.10/site-packages/urllib3/connectionpool.py:467, in HTTPConnectionPool._make_request(self, conn, method, url, body, headers, retries, timeout, chunked, response_conn, preload_content, decode_content, enforce_content_length) 466 try: --> 467 self._validate_conn(conn) 468 except (SocketTimeout, BaseSSLError) as e: (中略) File ~/env/lib/python3.10/site-packages/requests/adapters.py:517, in HTTPAdapter.send(self, request, stream, timeout, verify, cert, proxies) 513 raise ProxyError(e, request=request) 515 if isinstance(e.reason, _SSLError): 516 # This branch is for urllib3 v1.22 and later. --> 517 raise SSLError(e, request=request) 519 raise ConnectionError(e, request=request) 521 except ClosedPoolError as e: SSLError: HTTPSConnectionPool(host='book.impress.co.jp', port=443): Max retries exceeded with url: /books/1119101162 (Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1007)')))
該当のソースコード
Python
1import requests 2res = requests.get('https://book.impress.co.jp/books/1119101162')
試したこと
verify = FalseとしてSSL認証を無理やり通す(?)といった方法を目にしたため、
res = requests.get('https://book.impress.co.jp/books/1119101162', verify = False)
を試してみましたが、エラーは解決しませんでした。
指定先のURLにSafariでアクセスしたところ、正常にアクセスできました。
補足情報(FW/ツールのバージョンなど)
MacOS Catalina バージョン10.15.7
Jupyterlab version 4.0.0
pip version 23.1.2(Python 3.10)
あなたの回答
tips
プレビュー