geventとrequestsは同時にrequestsを使用する.exceptions.ReadTimeout:HTTPSConnectionPool(host='www.baidu.com', port=4

1804 ワード

最近のプロジェクトでは、Webサイトの同時アクセスを処理するために、Geventというライブラリを使用し、Webサイトにアクセスするにはrequestsを使用する必要がありますが、httpsにアクセスするurlタイムズは間違っています.
>>> from gevent import monkey; monkey.patch_socket()
>>> import gevent
>>> url='https://www.baidu.com'
>>> requests.get(url)
requests.exceptions.ReadTimeout:HTTPSConnectionPool(host='www.baidu.com', port=443): Read timed out. (read timeout=None)

最初はネットワーク接続の問題だと思っていましたが、wgetを使うのは問題ありませんでした.requestsのtimeoutパラメータを設定しても同様に機能しません.urllib 2ライブラリを変更し、次の異常を報告します.
urllib2.URLError: error [Errno 2] _ssl.c:504: The operation did not complete (read)>

次のサイトを通じて:http://stackoverflow.com/questions/20580252/python-requests-module-throws-exception-with-gevent
解決策が得られました.
>>> from gevent import monkey; monkey.patch_ssl()
>>> requests.get(url)
200]>

今回の問題は、Geventライブラリに詳しくないとともに、コードを貼り付けて機能を完成させたいと思っているからです.結局GGになりました.