質問: requests.get(url1, headers=headers) file "build/bdist.linux-x86_64/egg/requests/api.py", line 52, in get file "build/bdist.linux-x86_64/egg/requests/api.py", line 40, in request file "build/bdist.linux-x86_64/egg/requests/sessions.py", line 209, in request file "build/bdist.linux-x86_64/egg/requests/models.py", line 624, in send file "build/bdist.linux-x86_64/egg/requests/models.py", line 300, in _build_response file "build/bdist.linux-x86_64/egg/requests/models.py", line 611, in send requests.exceptions.sslerror: [errno 1] _ssl.c:503: error:14090086:ssl routines:ssl3_get_server_certificate:certificate verify failed
回答: あなたが抱えている問題は信頼できないssl証明書が原因です。前のコメントで述べた@dirkのように、最速修正はverify=falseを設定することです:requests.get('https://example.com', verify=false) これにより証明書が検証されないことに注意してください。 これにより、アプリケーションが中間者攻撃などのセキュリティリスクにさらされます。 もちろん、判断を下してください。コメントで述べたように、このmayはクイック/使い捨てのアプリケーション/スクリプトには受け入れられます、しかし実際には本番用ソフトウェアに行ってはいけません。特定のコンテキストで証明書チェックをスキップすることが受け入れられない場合は、次のオプションを検討してください。verifyパラメータを証明書の.pemファイルのパスである文字列に設定することをお勧めします安全な手段の)。そのため、バージョン2.0以降、verifyパラメータはそれぞれの意味を持つ次の値を受け入れます。 true:ライブラリ自身の信頼できる認証局に対して証明書を検証します(注:requestから抽出されたrcの信頼データベースであるcertifiライブラリを介して、どのルート証明書要求が使用するかを確認できます: certifi - trust database for humans ) 。 false:証明書の検証完全にをバイパスします。 証明書を検証するために使用するrequestのca_bundleファイルへのパス。 ソース: リクエスト - ssl証明書検証 同じリンクのcertパラメータも見てください。