Requests,一个发送HTTP请求与处理响应无敌的 Python 库
# 小伙伴们,今天我们要学习的可是一个超级实用的Python库——**Requests**!
它简化了HTTP请求的处理过程,让我们能够轻松地向网站发送请求并获取响应。
无论是爬取网页数据,还是与API进行交互,Requests都是我们的得力助手。
接下来,就让我们一起揭开Requests的神秘面纱吧!
## 一、Requests初体验
### 安装Requests
首先,我们需要安装Requests库。打开你的命令行工具,输入以下命令:
```bash
pip install requests
安装完成后,我们就可以开始使用Requests来发送HTTP请求了。
发送GET请求
GET请求是最常见的HTTP请求之一,通常用于获取资源。
import requests
# 发送GET请求
response = requests.get('https://api.github.com')
# 打印响应状态码
print(response.status_code)
# 打印响应内容
print(response.text)
上面的代码会向GitHub的API发送一个GET请求,并打印出响应的状态码和内容。
小贴士
- 响应状态码是一个整数,表示请求的处理结果。常见的状态码有200(成功)、404(未找到)等。
- 响应内容通常是一个字符串,包含了服务器返回的数据。
二、Requests的进阶用法
发送带参数的GET请求
有时候,我们需要在GET请求中传递参数。这可以通过params参数来实现。
# 发送带参数的GET请求
params = {'q': 'python'}
response = requests.get('https://api.github.com/search/repositories', params=params)
# 打印响应内容
print(response.json())
上面的代码会向GitHub的搜索API发送一个带参数的GET请求,搜索与“python”相关的仓库,并打印出响应的JSON格式数据。
发送POST请求
POST请求通常用于提交数据,比如表单提交或API调用。
# 发送POST请求
data = {'username': 'testuser', 'password': 'testpass'}
response = requests.post('https://example.com/login', data=data)
# 打印响应状态码
print(response.status_code)
上面的代码会向一个示例网站的登录接口发送一个POST请求,并提交用户名和密码。
小贴士
- POST请求的数据通常是一个字典或JSON格式的数据。
- 在发送POST请求时,要确保URL是正确的,并且数据格式符合API的要求。
三、Requests的高级特性
处理响应
Requests提供了丰富的响应处理功能,比如获取响应头、响应体等。
# 获取响应头
headers = response.headers
print(headers)
# 获取响应体中的JSON数据
json_data = response.json()
print(json_data)
上面的代码演示了如何获取响应头和响应体中的JSON数据。
异常处理
在网络请求中,难免会遇到各种异常情况,比如网络超时、连接错误等。Requests提供了异常处理机制来帮助我们应对这些情况。
try:
response = requests.get('https://example.com/notfound')
response.raise_for_status() # 如果响应状态码不是200,会引发HTTPError异常
except requests.exceptions.HTTPError as errh:
print("Http Error:", errh)
except requests.exceptions.ConnectionError as errc:
print("Error Connecting:", errc)
except requests.exceptions.Timeout as errt:
print("Timeout Error:", errt)
except requests.exceptions.RequestException as err:
print("OOps: Something Else", err)
上面的代码演示了如何使用Requests的异常处理机制来捕获和处理不同类型的异常。
小贴士
- 在进行网络请求时,一定要进行异常处理,以避免程序因为网络问题而崩溃。
- raise_for_status()方法会在响应状态码不是200时引发HTTPError异常,方便我们进行错误处理。
四、Requests的实战应用
爬取网页数据
Requests非常适合用于网页数据的爬取。我们可以使用它来发送请求,并解析响应内容。
# 爬取网页数据
url = 'https://example.com'
response = requests.get(url)
# 解析网页内容(这里使用BeautifulSoup进行解析)
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')
# 打印网页标题
print(soup.title.string)
上面的代码演示了如何使用Requests和BeautifulSoup来爬取网页数据,并解析出网页的标题。
与API交互
Requests也是与API交互的利器。我们可以使用它来调用API接口,并处理返回的数据。
# 与API交互
api_url = 'https://api.github.com/users/octocat'
response = requests.get(api_url)
# 解析API返回的数据
user_data = response.json()
print(user_data['login']) # 打印用户名
上面的代码演示了如何使用Requests来调用GitHub的API接口,并解析出用户的数据。
五、总结与实践
小伙伴们,今天我们一起学习了Requests库的基础知识,包括如何发送GET和POST请求,如何处理响应和异常,以及Requests在网页爬取和API交互中的实际应用。Requests是一个非常强大的库,它还有很多高级特性等待我们去探索,比如会话管理、认证等。
现在,是时候动手实践了!你可以尝试使用Requests来爬取一个你感兴趣的网页,并解析出其中的一些数据。或者,你也可以尝试调用一个你熟悉的API接口,并处理返回的数据。
记得动手敲代码,有问题随时在评论区问猿小哥哦。祝大家学习愉快,Python学习节节高!