requests模块的异常处理

本文列举了requests模块中可能出现的各种异常,并提供了相应的处理方法。通过使用try...except结构,可以有效地处理这些异常,确保程序在遇到网络问题时仍能稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

以下是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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值