Python中requests模块中的requests.exceptions库的用法
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请求中可能出现的各种异常情况,提高程序的健壮性和可靠性。
