亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

python請求異常-不斷拋出錯誤

python請求異常-不斷拋出錯誤

qq_遁去的一_1 2021-05-13 18:18:22
收到HTTP 200時,腳本運行正常。但是,一旦出現異常,我就會收到錯誤消息。我知道該網站未安裝有效的SSL證書,并且我嘗試過request.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)'),))
查看完整描述

1 回答

?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

在python中的表達式:


response

可從來沒有產生異常。您必須將兩個get調用都放在try塊中:


def verify_ssl(proxy_info, target): 

   print('Attempting to verify SSL Cert on %s:443' % target)

   try:

       if proxy_info is None:

          response = requests.get('https://%s' % target)

       else:

          response = requests.get('https://%s' % target, proxies=proxy_info)

   except requests.exceptions.SSLError as g:

      print('SSL Verification Error %s' % g)

      return 'Got SSL error'

   return 'Successfully Verified SSL Cert: HTTP 200 received.\n'

另外:請注意,您總是返回字符串,Successfully Verified SSL Cert ...因為即使發生錯誤,您也只打印錯誤消息,然后恢復執行。您可能想在except塊中返回不同的內容。


查看完整回答
反對 回復 2021-05-25
  • 1 回答
  • 0 關注
  • 195 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號