zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    windows下mysql多实例安装
    linux下mysql多实例安装
    redisAPI整理
    Flink
    Google Dremel架构
    Apache Kylin
    Phoenix概述
    SQL on Hadoop技术综述
    AES对称加密算法
    Hawq架构
  • 原文地址:https://www.cnblogs.com/lizm166/p/9525154.html
Copyright © 2011-2022 走看看