【发布时间】:2018-08-14 15:00:46
【问题描述】:
脚本在收到 HTTP 200 时工作正常。但是,一旦我收到异常,我就会收到错误消息。我知道该网站没有安装有效的 SSL 证书,并且我尝试使用 requests.exceptions.RequestException 来捕获任何内容,但仍然会引发错误。我还会不时出现代理错误等异常,并且 requests.exceptions.RequestException 不会捕获它。我也尝试过,在 try: request.raise_for_status() 下仍然会引发错误。代码如下:
def verify_ssl(proxy_info, target):
print('Attempting to verify SSL Cert on %s:443' % target)
if proxy_info == None:
response = requests.get('https://%s' % target)
if proxy_info != None:
response = requests.get('https://%s' % target, proxies=proxy_info)
try:
response
except requests.exceptions.SSLError as g:
print('SSL Verification Error %s' % g)
return ('Successfully Verified SSL Cert: HTTP 200 received.\n')
调试告诉我这个:
Traceback (most recent call last):
File "c:\Users\appleta\Desktop\ping.py", line 69, in <module>
ssl_result = verify_ssl(proxy_info, target)
File "c:\Users\appleta\Desktop\ping.py", line 37, in verify_ssl
response = requests.get('https://%s' % target)
File "C:\Python34\lib\site-packages\requests\api.py", line 72, in get
return request('get', url, params=params, **kwargs)
File "C:\Python34\lib\site-packages\requests\api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "C:\Python34\lib\site-packages\requests\sessions.py", line 512, in request
resp = self.send(prep, **send_kwargs)
File "C:\Python34\lib\site-packages\requests\sessions.py", line 622, in send
r = adapter.send(request, **kwargs)
File "C:\Python34\lib\site-packages\requests\adapters.py", line 511, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='blabla.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)'),))
【问题讨论】: