为HTTP而生的requests库,纵横江湖难逢敌手

既然Python是一门全球流行的语言,那么对于网络通信的HTTP的支持肯定也是非常的优秀的。Python中原生的urllib模块也有对HTTP的支持,虽然也可以用来发送 HTTP 请求,但使用起来相对繁琐,并且 API 设计不够直观。

requests 库的出现填补了 Python 在 HTTP 请求方面的不足,简化了开发者的工作流程,让他们可以更加专注于业务逻辑的实现,而不用过多关注底层的 HTTP 请求细节。同时,requests 的清晰文档和社区活跃也使得这个库成为 Python 社区中最受欢迎的 HTTP 请求库之一。

毫不夸张的说,requests就是为HTTP而生的,在Python领域难逢敌手。

requests是什么

requests 是一个非常流行的 HTTP 库,它提供了简洁、易用的 API 接口,用于发送各种类型的 HTTP 请求并处理响应。requests 库可以帮助开发者使用 Python 进行网络通信,与 Web 服务进行交互,获取数据并处理返回的响应内容。

以下是听说的一些他的强大功能:

  1. 支持多种 HTTP 请求方法:requests 库支持常见的 HTTP 请求方法,如 GET、POST、PUT、DELETE 等,开发者可以轻松地发送不同类型的请求。
  2. 简洁的 API 接口:requests 的设计理念是“用户友好、易用性优先”,提供了简洁直观的接口,让开发者可以快速上手,并且代码易读易维护。
  3. 请求和响应自动处理:requests 可以自动处理请求和响应的细节,如自动添加请求头、处理重定向、管理 cookie 等,简化了开发过程。
  4. 文件上传和下载支持:requests 支持文件的上传和下载操作,可以方便地处理文件相关的 HTTP 请求。
  5. 会话管理:requests 提供了会话对象,可以保持持久性会话,跨请求共享 cookies,而不用重复设置。
  6. SSL 验证:requests 支持 SSL 验证,确保请求的安全性。 当然,这个功能听着实在太抽象,所以需要你深入去了解他。

而我用一句话概况requests就是:requests一个非常优秀、受欢迎的HTTP库。

requests的官网网站以及源码地址:

代码语言:javascript
复制
官网网站:requests.readthedocs.io
源码地址:github.com/psf/requests

安装requests

要安装requests包,可以使用Python的包管理器(如pip)在命令行中运行以下命令:

代码语言:javascript
复制
pip install requests

使用requests

安装完成后,在 Python 脚本中引入 requests 模块:

代码语言:javascript
复制
import requests

GET方法

接下来就可以使用 requests 发送 HTTP 请求了。以下是一个简单的示例,演示如何使用 requests 发送一个 GET 请求。

代码语言:javascript
复制
# 导入 requests 库
import requests

定义请求的 URL

url = "https://jsonplaceholder.typicode.com/posts/1"

发送 GET 请求

response = requests.get(url)

检查响应状态码

if response.status_code == 200:
# 输出一些请求信息
print(f"请求 URL: {url}")
print(f"请求状态码: {response.status_code}")
print("响应头信息:")
for key, value in response.headers.items():
print(f" {key}: {value}")
print("")

# 输出响应内容
print("响应内容:")
print(response.text)  # 使用 text 属性获取响应内容(字符串形式)

# 如果响应是 JSON 格式,也可以直接获取为 JSON 数据
json_data = response.json()
print("响应 JSON 数据:")
print(json_data)

else:
print(f"请求失败,状态码: {response.status_code}")

以上代码中,我们首先导入 requests 模块,然后使用 requests.get() 方法发送一个 GET 请求,指定了目标 URL。请求发送完毕后,可以通过 response 对象获取到响应内容,使用 response.text 可以获得响应的文本内容。当然URL地址可以替换成任意你想要的地址,我上面只是弄个实例。

除了 GET 请求,requests 还支持其他 HTTP 请求方法,如 POST、PUT、DELETE 等。

POST方法

代码语言:javascript
复制
# 导入 requests 库
import requests

定义请求的 URL

url = 'https://jsonplaceholder.typicode.com/posts'

定义要发送的 JSON 数据

data = {
'name': 'alittle',
'body-length': 180,
'company': 'home'
}

发送 POST 请求

response = requests.post(url, json=data)

检查响应状态码

if response.status_code == 201: # 201 表示创建成功
print('创建成功,返回数据如下:')
print(response.json()) # 输出响应内容
else:
print('请求失败,状态码:', response.status_code)

大家可以看到,在上面的例子中,我们使用 requests.post() 方法发送一个 POST 请求,同时传递了一个 data 参数,用于设置 POST 请求的数据。

除了 GET 和 POST 请求,requests 还支持其他功能,如设置请求头、处理响应、上传文件、代理设置等。具体使用方法可以参考 requests 官方文档,里面包含了详细的 API 参考和示例。
以上是一些非常简单的 requests 库的使用例子,主要是为了让大家对这个库的使用有一个大概的印象。

requests的相关函数

以下我总结的一些比较常用的一些requests库的方法。

函数名

解释

requests.get()

发送GET请求

requests.post()

发送POST请求

requests.put()

发送PUT请求

requests.delete()

发送DELETE请求

requests.head()

发送HEAD请求

requests.options()

发送OPTIONS请求

requests.patch()

发送PATCH请求

requests.request()

发送自定义请求方法

requests.Session()

创建一个持久性会话对象,可以跨请求保持某些参数

requests.cookies

Response 对象的 cookies 属性,用于访问响应的 cookies

requests.getproxies()

获取当前系统的代理信息

requests.adapters

适配器,用于发送请求和接收响应