EDIT - FIXED tldr、半古いバージョンのpythonがインストールされました。数年前、新しいSSL証明書を処理するために更新されなかったsslパッケージがありました。 Pythonを更新し、sslパッケージが最新のものであることを確認した後、すべてがうまくいった。Pythonリクエストが特定のサイトでSSLエラーをスローする
私は、Webスクレイピングに新たなんだ、と特定のサイトをこすりしたかったが、この特定のサイト上でPythonの要求のパッケージを使用する際に、何らかの理由で私はエラーを取得しています。
私は自分のユーザープロフィールからデータをスクラップするために安全なログインに取り組んでいます。ログインアドレスはここにあります:https://secure.funorb.com/m=weblogin/loginform.ws?mod=hiscore_fo&ssl=0&expired=0&dest=
私はちょうどこの時点でget要求からテキストを印刷するような単純なタスクを実行しようとしています。以下は私のコードです。私はこれを実行すると
import requests
req = requests.get('https://secure.funorb.com/m=weblogin/loginform.ws?mod=hiscore_fo&ssl=0&expired=0&dest=',verify=False)
print req.text
、エラーがスローされます。
File "/Library/Python/2.7/site-packages/requests/adapters.py", line 512, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: EOF occurred in violation of protocol (_ssl.c:590)
私は何が起こっているのかを確認するには、このファイルで見てきました。犯人は私がここに私のデバッグ限界で一種のだけど、残念ながらこれを回避する方法は本当にわからないんだけど
except (_SSLError, _HTTPError) as e:
if isinstance(e, _SSLError):
raise SSLError(e, request=request)
elif isinstance(e, ReadTimeoutError):
raise ReadTimeout(e, request=request)
else:
raise
あるようです。
私のコードは、https://bitbucket.org/account/signin/のような他の安全なサイトで正常に動作します。私は、スタック交換とネットの周りのソリューションのトンを見てきました。多くの人々はオプションの引数 "verify = False"でこれらのタイプのSSLエラーを修正する必要があると主張しました(これは最も安全な方法ではありませんそれ)。しかし、私のコードスニペットからわかるように、これは私を助けるものではありません。
誰でもこの作業をすることができます/どこに行くかアドバイスをいただければ幸いです。
ありがとうございました。 – spaderdabomb
これは良いキャッチです! – Alfabravo