Python Requests 库介绍与安装

Requests 是一个优雅而简单的Python HTTP库,为人类构建。它让HTTP请求变得非常简单,相比Python标准库中的urllib模块,Requests更加简单易用。

Requests库简介

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请求的复杂性,让开发者能够更加专注于业务逻辑而不是网络细节。

Requests库的主要特性

特性 描述
简单易用的API 直观的API设计,几行代码即可完成复杂的HTTP操作
自动内容解码 自动根据响应头对返回内容进行解码,支持gzip和deflate压缩
连接保持和连接池 支持HTTP持久连接和连接池,提高性能
会话和Cookie持久化 使用Session对象可以保持cookie和默认参数
SSL验证 支持SSL证书验证,同时也可以跳过验证
多种认证方式 支持基本身份认证、摘要认证、OAuth等
文件上传 支持multipart文件上传,简单易用
超时控制 支持连接超时和读取超时设置
代理支持 支持HTTP和SOCKS代理

这些特性使得Requests成为Python中最受欢迎的HTTP客户端库,广泛应用于Web爬虫、API调用、自动化测试等领域。

安装Requests库

Requests库可以通过多种方式安装,推荐使用pip进行安装。

前提条件

确保已安装Python 2.7+ 或 3.5+ 版本,并且已经安装了pip包管理工具。

方法一:使用pip安装(推荐)

这是最简单和最常用的安装方法:

Windows系统:
pip install requests
macOS/Linux系统:
pip install requests
# 或者使用pip3(如果系统同时有Python2和Python3)
pip3 install requests
安装特定版本:
# 安装指定版本
pip install requests==2.28.1

# 安装最新版本
pip install requests --upgrade

方法二:使用conda安装

如果你使用Anaconda或Miniconda,可以使用conda命令安装:

conda install -c anaconda requests

方法三:从源码安装

如果你想使用最新开发版本或进行修改,可以从GitHub源码安装:

git clone https://github.com/psf/requests.git
cd requests
pip install .

验证安装

安装完成后,可以通过以下方式验证Requests是否安装成功:

方式一:在Python交互环境中验证
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示例

下面是一个简单的示例,演示如何使用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请求,处理响应,使用会话,设置代理等高级功能。