Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python:sslv3在抓取站点时警报握手失败_Python_Macos_Ssl_Web Scraping_Sslv3 - Fatal编程技术网

python:sslv3在抓取站点时警报握手失败

python:sslv3在抓取站点时警报握手失败,python,macos,ssl,web-scraping,sslv3,Python,Macos,Ssl,Web Scraping,Sslv3,我正在使用请求来删除古腾堡项目 当我这样做时: import requests requests.get("https://www.gutenberg.org/wiki/Science_Fiction_(Bookshelf)", verify = True) 我得到一个错误: SSLError Traceback (most recent call last) <ipython-input-33-15981c36

我正在使用请求来删除古腾堡项目 当我这样做时:

import requests
requests.get("https://www.gutenberg.org/wiki/Science_Fiction_(Bookshelf)", verify = True) 
我得到一个错误:

    SSLError                                  Traceback (most recent call last)
<ipython-input-33-15981c36e1d3> in <module>()
----> 1 requests.get("https://www.gutenberg.org/wiki/Science_Fiction_(Bookshelf)", verify=True)

/Library/Python/2.7/site-packages/requests/api.pyc in get(url, params, **kwargs)
     67 
     68     kwargs.setdefault('allow_redirects', True)
---> 69     return request('get', url, params=params, **kwargs)
     70 
     71 

/Library/Python/2.7/site-packages/requests/api.pyc in request(method, url, **kwargs)
     48 
     49     session = sessions.Session()
---> 50     response = session.request(method=method, url=url, **kwargs)
     51     # By explicitly closing the session, we avoid leaving sockets open which
     52     # can trigger a ResourceWarning in some cases, and look like a memory leak

/Library/Python/2.7/site-packages/requests/sessions.pyc in request(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)
    463         }
    464         send_kwargs.update(settings)
--> 465         resp = self.send(prep, **send_kwargs)
    466 
    467         return resp

/Library/Python/2.7/site-packages/requests/sessions.pyc in send(self, request, **kwargs)
    571 
    572         # Send the request
--> 573         r = adapter.send(request, **kwargs)
    574 
    575         # Total elapsed time of the request (approximately)

/Library/Python/2.7/site-packages/requests/adapters.pyc in send(self, request, stream, timeout, verify, cert, proxies)
    429         except (_SSLError, _HTTPError) as e:
    430             if isinstance(e, _SSLError):
--> 431                 raise SSLError(e, request=request)
    432             elif isinstance(e, ReadTimeoutError):
    433                 raise ReadTimeout(e, request=request)

SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:590)
SSLError回溯(最近一次调用)
在()
---->1.获取(“https://www.gutenberg.org/wiki/Science_Fiction_(书架)”,验证=True)
/get中的Library/Python/2.7/site-packages/requests/api.pyc(url、参数、**kwargs)
67
68 kwargs.setdefault('allow_redirects',True)
--->69返回请求('get',url,params=params,**kwargs)
70
71
/请求中的Library/Python/2.7/site-packages/requests/api.pyc(方法、url、**kwargs)
48
49 session=sessions.session()
--->50响应=session.request(方法=method,url=url,**kwargs)
51#通过显式关闭会话,我们可以避免让套接字保持打开状态
52#在某些情况下会触发资源警告,看起来像内存泄漏
/请求中的Library/Python/2.7/site-packages/requests/sessions.pyc(self、method、url、params、data、header、cookie、files、auth、timeout、allow_重定向、代理、hook、stream、verify、cert、json)
463         }
464发送文件更新(设置)
-->465 resp=自我发送(准备,**发送)
466
467返回响应
/发送中的Library/Python/2.7/site-packages/requests/sessions.pyc(self,request,**kwargs)
571
572#发送请求
-->573 r=适配器.send(请求,**kwargs)
574
575#请求的总运行时间(大约)
/发送中的Library/Python/2.7/site-packages/requests/adapters.pyc(self、request、stream、timeout、verify、cert、proxies)
429除了(\u ssleror,\u HTTPError)作为e:
430如果存在(e,错误):
-->431 raise SSLError(e,请求=请求)
432 elif isinstance(e,ReadTimeoutError):
433提升读取超时(e,请求=请求)
SSLError:[SSL:SSLV3警报握手失败]SSLV3警报握手失败(\u SSL.c:590)
这是工作前几天,我能够刮页面。我没有改变我代码中的任何内容。我确实安装了Heroku和Postgres,我不知道这是否会导致错误。。我仍然可以请求google.com和其他页面。我使用的是Python版本2.7.10和MacOSX10.10.5


我如何克服这个错误来刮取古腾堡页面?我真的不理解这个错误,所以希望能提供任何帮助。

看起来他们最近(2015年9月21日)安装了一个新的SSL证书,在这样做的时候,他们一定加强了安全设置,因为该站点只接受TLS 1.2连接(没有您的库尝试使用的SSLv3,也没有TLS 1.0或TLS 1.1)

查看他们的SSL扫描结果

它停止工作的原因与您的代码无关,但是他们更改了允许的安全协议,并且您的系统(OpenSSL版本)似乎不支持TLS 1.2

尝试升级计算机上的OpenSSL库,然后您应该能够再次连接到该站点(抱歉,我不知道在Mac for Python上更新OpenSSL库的具体细节)