Requests 是Python中最受欢迎的HTTP客户端库,由 Kenneth Reitz 创建,遵循 Apache2 Licensed 开源协议。
Requests 允许你发送HTTP/1.1请求,无需手动添加查询字符串到URL,或表单编码POST数据。Keep-alive和HTTP连接池等功能是100%自动化的。
"HTTP for Humans" (为人类设计的HTTP库)
在Python中,虽然标准库提供了urllib模块来处理HTTP请求,但使用起来比较繁琐。Requests库的出现极大地简化了HTTP请求的复杂性,让开发者能够更加专注于业务逻辑而不是网络细节。
| 特性 | 描述 |
|---|---|
| 简单易用的API | 直观的API设计,几行代码即可完成复杂的HTTP操作 |
| 自动内容解码 | 自动根据响应头对返回内容进行解码,支持gzip和deflate压缩 |
| 连接保持和连接池 | 支持HTTP持久连接和连接池,提高性能 |
| 会话和Cookie持久化 | 使用Session对象可以保持cookie和默认参数 |
| SSL验证 | 支持SSL证书验证,同时也可以跳过验证 |
| 多种认证方式 | 支持基本身份认证、摘要认证、OAuth等 |
| 文件上传 | 支持multipart文件上传,简单易用 |
| 超时控制 | 支持连接超时和读取超时设置 |
| 代理支持 | 支持HTTP和SOCKS代理 |
这些特性使得Requests成为Python中最受欢迎的HTTP客户端库,广泛应用于Web爬虫、API调用、自动化测试等领域。
Requests库可以通过多种方式安装,推荐使用pip进行安装。
确保已安装Python 2.7+ 或 3.5+ 版本,并且已经安装了pip包管理工具。
这是最简单和最常用的安装方法:
pip install requests
pip install requests
# 或者使用pip3(如果系统同时有Python2和Python3)
pip3 install requests
# 安装指定版本
pip install requests==2.28.1
# 安装最新版本
pip install requests --upgrade
如果你使用Anaconda或Miniconda,可以使用conda命令安装:
conda install -c anaconda requests
如果你想使用最新开发版本或进行修改,可以从GitHub源码安装:
git clone https://github.com/psf/requests.git
cd requests
pip install .
安装完成后,可以通过以下方式验证Requests是否安装成功:
import requests
print(requests.__version__)
如果安装成功,会显示Requests的版本号,例如:2.28.1
import requests
# 尝试发送一个简单的GET请求
response = requests.get('https://httpbin.org/get')
# 打印状态码和部分响应内容
print(f"状态码: {response.status_code}")
print(f"响应头: {response.headers['content-type']}")
print("安装成功!Requests可以正常使用。")
如果以上代码能够正常运行并输出相关信息,说明Requests库已成功安装。
下面是一个简单的示例,演示如何使用Requests发送GET请求并处理响应:
import requests
# 发送GET请求
response = requests.get('https://api.github.com')
# 检查请求是否成功 (状态码200表示成功)
if response.status_code == 200:
print("请求成功!")
print(f"状态码: {response.status_code}")
print(f"内容类型: {response.headers['content-type']}")
print(f"编码: {response.encoding}")
# 输出响应的前200个字符
print("\n响应内容前200字符:")
print(response.text[:200])
else:
print(f"请求失败,状态码: {response.status_code}")
# 也可以将响应内容解析为JSON(如果响应是JSON格式)
try:
data = response.json()
print("\n解析为JSON的数据类型:", type(data))
except:
print("\n响应内容不是有效的JSON格式")
requests.get() 发送一个GET请求response.status_code 获取HTTP状态码response.headers 获取响应头信息response.text 获取响应内容(文本格式)response.json() 将JSON响应解析为Python字典Requests是Python中最流行的HTTP客户端库,它简化了HTTP请求的复杂性,提供了直观且功能丰富的API。通过简单的pip install requests命令即可安装,是处理HTTP请求的首选工具。
在接下来的章节中,我们将学习如何使用Requests发送各种类型的HTTP请求,处理响应,使用会话,设置代理等高级功能。