欢迎访问宙启技术站
智能推送

Python中requests模块中的requests.exceptions库的用法

发布时间:2023-12-25 03:47:31

requests是一个常用的HTTP请求库,而requests.exceptions是requests模块中的一个异常处理库。它提供了一些常见的异常类,用于处理不同的HTTP请求异常。

使用requests模块发送HTTP请求时,可能会遇到各种不同的异常情况,如服务器没有响应、网络连接超时等。requests.exceptions库可以帮助我们捕获这些异常并进行相应的处理。

requests.exceptions库中的异常类主要有以下几个:

1. ConnectionError:在连接过程中产生的异常,如DNS查询失败、拒绝连接等。

2. Timeout:请求超时异常,当请求时间超过设定的超时时间时会抛出该异常。

3. TooManyRedirects:重定向次数超过设定的最大次数时会抛出该异常。

4. RequestException:封装了其他异常的基类,可以捕获所有异常。

5. HTTPError:在接收到非200响应代码时抛出的异常。

下面我们通过几个示例来演示requests.exceptions库的用法。

1. 捕获连接异常

import requests

from requests.exceptions import ConnectionError

try:

    response = requests.get('http://www.example.com')

except ConnectionError:

    print('连接异常,请检查网络连接!')

2. 捕获超时异常

import requests

from requests.exceptions import Timeout

try:

    response = requests.get('http://www.example.com', timeout=5)

except Timeout:

    print('请求超时,请检查网络连接和服务器是否正常!')

3. 捕获重定向异常

import requests

from requests.exceptions import TooManyRedirects

try:

    response = requests.get('http://www.example.com', allow_redirects=True, max_redirects=5)

except TooManyRedirects:

    print('重定向次数超过限制,请检查请求地址是否正确!')

4. 捕获所有异常

import requests

from requests.exceptions import RequestException

try:

    response = requests.get('http://www.example.com')

except RequestException as e:

    print('请求异常:', e)

5. 捕获非200响应异常

import requests

from requests.exceptions import HTTPError

try:

    response = requests.get('http://www.example.com')

    response.raise_for_status()  # 如果响应非200,抛出HTTPError异常

except HTTPError as e:

    print('非200响应:', e)

以上是requests.exceptions库的基本用法。使用这些异常类,可以更好地处理HTTP请求中可能出现的各种异常情况,提高程序的健壮性和可靠性。