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/

  • 相关阅读:
    51nod 1179 最大的最大公约数 (数论)
    POJ 3685 二分套二分
    POJ 3045 贪心
    LIC
    HDU 1029 Ignatius and the Princess IV
    HDU 1024 Max Sum Plus Plus
    HDU 2389 Rain on your Parade
    HDU 2819 Swap
    HDU 1281 棋盘游戏
    HDU 1083 Courses
  • 原文地址:https://www.cnblogs.com/lizm166/p/9525154.html
Copyright © 2011-2022 走看看