如何处理`requests.get()`响应中的异常情况?
时间: 2024-10-28 16:10:51 浏览: 20
用异常处理知识解决requests中的ConnectionError
在Python中,使用`requests.get()`获取网络资源时,可能会遇到各种异常,例如网络连接错误、超时、HTTP状态码异常等。为了优雅地处理这些异常,你可以采用以下步骤:
1. **导入模块**:
首先,确保已导入`requests`库:
```python
import requests
```
2. **尝试-捕获结构**:
使用`try-except`块来捕获可能出现的异常:
```python
try:
response = requests.get('http://example.com')
except Exception as e:
# 处理异常
```
3. **检查响应状态码**:
状态码4xx或5xx通常表示服务器错误或客户端请求问题。可以检查`response.status_code`:
```python
if response.status_code >= 400:
print(f"请求出错,状态码:{response.status_code}")
```
4. **处理其他异常**:
根据具体的异常类型,如`requests.exceptions.Timeout`(超时)、`requests.exceptions.ConnectionError`(连接失败)等,分别处理它们:
```python
except requests.exceptions.Timeout:
print("请求超时")
except requests.exceptions.RequestException as e:
print(f"请求发生错误:{e}")
```
5. **处理成功的情况**:
如果一切正常,可以访问响应内容:
```python
if response.status_code == 200:
data = response.json() # 或者data = response.text
# 对数据做进一步操作...
```
阅读全文