python request post异常分支处理_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)breakexceptrequests.exceptions.ConnectionError:print('ConnectionError -- please wait 3 seconds')

time.sleep(3)exceptrequests.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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值