Python:在windows而不是linux上执行get请求时发生错误握手

Python:在windows而不是linux上执行get请求时发生错误握手,windows,ssl,python-requests,python-3.4,handshake,Windows,Ssl,Python Requests,Python 3.4,Handshake,我编写了一个python脚本来下载网站的内容,当我在linux机器上执行它时,它工作得非常好,但不是在windows上(它需要在windows上执行) 以下是生成错误的代码: import requests c = requests.Session() url = 'https://ted.jeancoutu.com/action/login' c.get(url) 以下是我在windows计算机上执行代码时收到的错误消息: Traceback (most recent

我编写了一个python脚本来下载网站的内容,当我在linux机器上执行它时,它工作得非常好,但不是在windows上(它需要在windows上执行)

以下是生成错误的代码:

   import requests
   c = requests.Session()
   url = 'https://ted.jeancoutu.com/action/login'
   c.get(url)
以下是我在windows计算机上执行代码时收到的错误消息:

Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\requests\packages\urllib3\contrib\pyopenssl.py", line 348, in ssl_wrap_socket
    cnx.do_handshake()
  File "C:\Python34\lib\site-packages\OpenSSL\SSL.py", line 1443, in do_handshake
    self._raise_ssl_error(self._ssl, result)
  File "C:\Python34\lib\site-packages\OpenSSL\SSL.py", line 1191, in _raise_ssl_error
    _raise_current_error()
  File "C:\Python34\lib\site-packages\OpenSSL\_util.py", line 48, in exception_from_error_queue
    raise exception_type(errors)
OpenSSL.SSL.Error: [('SSL routines', 'SSL23_GET_SERVER_HELLO', 'sslv3 alert handshake failure')]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 578, in urlopen
    chunked=chunked)
  File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 351, in _make_request
    self._validate_conn(conn)
  File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 814, in _validate_conn
    conn.connect()
  File "C:\Python34\lib\site-packages\requests\packages\urllib3\connection.py", line 289, in connect
    ssl_version=resolved_ssl_version)
  File "C:\Python34\lib\site-packages\requests\packages\urllib3\contrib\pyopenssl.py", line 355, in ssl_wrap_socket
    raise ssl.SSLError('bad handshake: %r' % e)
ssl.SSLError: ("bad handshake: Error([('SSL routines', 'SSL23_GET_SERVER_HELLO', 'sslv3 alert handshake failure')],)",)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Python34\lib\site-packages\requests\adapters.py", line 403, in send
    timeout=timeout
  File "C:\Python34\lib\site-packages\requests\packages\urllib3\connectionpool.py", line 604, in urlopen
    raise SSLError(e)
requests.packages.urllib3.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'SSL23_GET_SERVER_HELLO', 'sslv3 alert handshake failure')],)",)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python34\lib\site-packages\requests\sessions.py", line 487, in get
    return self.request('GET', url, **kwargs)
  File "C:\Python34\lib\site-packages\requests\sessions.py", line 475, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Python34\lib\site-packages\requests\sessions.py", line 585, in send
    r = adapter.send(request, **kwargs)
  File "C:\Python34\lib\site-packages\requests\adapters.py", line 477, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'SSL23_GET_SERVER_HELLO', 'sslv3 alert handshake failure')],)",)
回溯(最近一次呼叫最后一次):
文件“C:\Python34\lib\site packages\requests\packages\urllib3\contrib\pyopenssl.py”,第348行,在ssl\u wrap\u套接字中
cnx.do_握手()
文件“C:\Python34\lib\site packages\OpenSSL\SSL.py”,第1443行,在do_握手中
self.\u raise\u ssl\u错误(self.\u ssl,结果)
文件“C:\Python34\lib\site packages\OpenSSL\SSL.py”,第1191行,在\u raise\u SSL\u错误中
_引发当前错误()
文件“C:\Python34\lib\site packages\OpenSSL\\u util.py”,第48行,在错误队列的异常中
引发异常类型(错误)
OpenSSL.SSL.Error:[('SSL例程','SSL23\u GET\u SERVER\u HELLO','sslv3警报握手失败')]
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:\Python34\lib\site packages\requests\packages\urllib3\connectionpool.py”,第578行,在urlopen中
分块=分块)
文件“C:\Python34\lib\site packages\requests\packages\urllib3\connectionpool.py”,第351行,在请求中
自我验证连接(连接)
文件“C:\Python34\lib\site packages\requests\packages\urllib3\connectionpool.py”,第814行,位于\u validate\u conn
连接
文件“C:\Python34\lib\site packages\requests\packages\urllib3\connection.py”,第289行,在connect中
ssl\U版本=已解析的\U ssl\U版本)
文件“C:\Python34\lib\site packages\requests\packages\urllib3\contrib\pyopenssl.py”,第355行,在ssl\u wrap\u套接字中
raise ssl.SSLError('握手错误:%r“%e”)
ssl.SSLError:(“握手错误:错误([('ssl例程','SSL23\u GET\u SERVER\u HELLO','sslv3警报握手失败]),),)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“C:\Python34\lib\site packages\requests\adapters.py”,第403行,在send中
超时=超时
文件“C:\Python34\lib\site packages\requests\packages\urlib3\connectionpool.py”,第604行,在urlopen中
升起SSLError(e)
requests.packages.urllib3.exceptions.SSLError:(“握手错误:错误([('SSL例程','SSL23\u GET\u SERVER\u HELLO','sslv3警报握手失败'),),)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
get中第487行的文件“C:\Python34\lib\site packages\requests\sessions.py”
返回self.request('GET',url,**kwargs)
文件“C:\Python34\lib\site packages\requests\sessions.py”,第475行,在请求中
resp=自我发送(准备,**发送)
文件“C:\Python34\lib\site packages\requests\sessions.py”,第585行,在send中
r=适配器.send(请求,**kwargs)
文件“C:\Python34\lib\site packages\requests\adapters.py”,第477行,在send中
raise SSLError(e,请求=请求)
requests.exceptions.SSLError:(“错误握手:错误”([('SSL例程','SSL23\u获取\u服务器\u HELLO','sslv3警报握手失败]),),)
我找不到解决这个问题的办法。我尝试了许多在网上找到的建议,但都没有效果。我安装了pyOpenSSL、ndg-httpsclient和pyasn1,但没有结果。我还升级了ssl,但仍然没有升级


感谢您的建议

ted.jeancoutu.com网站仅支持RC4-SHA和RC4-MD5密码(请参阅。RC4密码被认为是不安全的,因此已从中的请求中的默认密码集中删除。您可能正在Linux上使用较旧版本的请求,因此它仍然可以工作,但在Windows上使用较新版本时失败

有关如何通过启用不安全密码来解决此问题的信息,请参阅