Python3:Requests模块的异常值处理

Python3:Requests模块的异常值处理

用Python的requests模块进行爬虫时,一个简单高效的模块就是requests模块,利用get()或者post()函数,发送请求。

但是在真正的实际使用过程中,我们可能会遇到网络的各种变化,可能会导致请求过程发生各种未知的错误导致程序中断,这就使我们的程序不能很好的去处理错误。所以为了使我们的程序在请求时遇到错误,可以捕获这种错误,就要用到try…except方法,以及了解requests可能发生的各种错误.

以下是request.exceptions下的各种异常错误: 
RequestException: 
HTTPError(RequestException)   
UnrewindableBodyError(RequestException)   
RetryError(RequestException)   
ConnectionError(RequestException) ProxyError(ConnectionError) 
SSLError(ConnectionError) 
ConnectTimeout(ConnectionError, Timeout) 
Timeout(RequestException) ReadTimeout 
URLRequired(RequestException)   
TooManyRedirects(RequestException)   
MissingSchema(RequestException, ValueError)   
InvalidSchema(RequestException,ValueError)   
InvalidURL(RequestException,ValueError)   
InvalidHeader(RequestException,ValueError)   
ChunkedEncodingError(RequestException)   
StreamConsumedError(RequestException,TypeError)   
ContentDecodingError(RequestException,BaseHTTPError)

在实际应用的过程中,我们可以把请求放在try下,把可能发生的异常用except获取:

while True:     # 一直循环,知道访问站点成功
  try:
      # 以下except都是用来捕获当requests请求出现异常时,
       # 通过捕获然后等待网络情况的变化,以此来保护程序的不间断运行
       req = requests.get(company_url, headers = headers, timeout = 20)    
       break
  except requests.exceptions.ConnectionError: print('ConnectionError -- please wait 3 seconds') time.sleep(3) except requests.exceptions.ChunkedEncodingError: print('ChunkedEncodingError -- please wait 3 seconds') time.sleep(3) except: print('Unfortunitely -- An Unknow Error Happened, Please wait 3 seconds') time.sleep(3)

官方异常处理文档:http://www.python-requests.org/en/master/_modules/requests/exceptions/

 

转载于:https://www.cnblogs.com/lizm166/p/9525154.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值