Python requests 模块:进阶教程

Python requests 模块:进阶教程

requests 模块是一个流行的 Python 库,旨在简化 HTTP 请求的使用。它使得发送网络请求(如 GET、POST、PUT 等)变得简单易懂,并提供了丰富的功能,如会话、身份验证、文件上传、错误处理等。requests 模块适用于 Python 2.7 和 3.6 以上的版本,广泛应用于网络爬虫、API 接口调用、数据获取等场景。

模块介绍

requests 模块的设计哲学是让 HTTP 请求变得直观且易用。它对许多底层的复杂性进行了封装,使得开发者可以专注于业务逻辑而不是 HTTP 的低级细节。无论是通过简单的 GET 请求获取网页内容,还是通过 POST 请求发送数据,requests 模块都提供了清晰明了的接口。

应用场景

requests 模块在多个领域得到了广泛应用,尤其是在以下几个场景中表现出色:

  1. 网络爬虫:使用 requests 模块轻松获取网页数据,结合 BeautifulSoup 或其他解析库进行数据提取。
  2. API 调用:在与 RESTful API 进行交互时,可以高效地发送请求并获取响应数据。
  3. 数据收集:对于需要定期采集的数据,requests 模块可以构建简单的脚本自动化数据获取。
  4. 网站监测:可以定期发送请求检查网站可用性,及时发现问题。

安装说明

requests 模块不是 Python 的内置模块,因此需要通过包管理工具进行安装。可以使用以下命令安装 requests:

1
pip install requests

安装完成后,可以在 Python 脚本中通过 import requests 导入模块。

用法举例

1. 发送 GET 请求

1
2
3
4
5
6
import requests  # 导入 requests 模块

url = 'https://api.github.com/users/octocat' # 定义目标 URL
response = requests.get(url) # 发送 GET 请求
print(response.status_code) # 打印响应状态码
print(response.json()) # 打印响应的 JSON 数据

在这个例子中,我们向 GitHub 的 API 发送 GET 请求,获取用户 octocat 的信息,并打印其状态码和响应内容。

2. 发送 POST 请求

1
2
3
4
5
6
7
import requests  # 导入 requests 模块

url = 'https://httpbin.org/post' # 定义目标 URL
data = {'name': 'John', 'age': 30} # 定义要发送的数据
response = requests.post(url, data=data) # 发送 POST 请求
print(response.status_code) # 打印响应状态码
print(response.json()) # 打印返回的 JSON 数据

这里我们向 httpbin.org 发送 POST 请求,并将一些数据作为表单参数发送。响应将会显示我们发送的数据。

3. 使用会话管理请求

1
2
3
4
5
6
7
8
9
10
import requests  # 导入 requests 模块

session = requests.Session() # 创建会话对象
session.auth = ('user', 'pass') # 设置基本认证信息

# 使用会话对象发送多个请求
response1 = session.get('https://httpbin.org/basic-auth/user/pass') # 验证用户
response2 = session.get('https://httpbin.org/get') # 获取数据
print(response1.json()) # 打印第一个请求的返回内容
print(response2.json()) # 打印第二个请求的返回内容

在这个例子中,使用了会话对象(Session)来保持对同一个站点的请求,避免在每个请求中重复提交身份验证信息。

软件和库版本不断更新

由于软件和库版本不断更新,如果本文档不再适用或有误,请留言或联系我进行更新。让我们一起营造良好的学习氛围。感谢您的支持! - Travis Tang

我非常欢迎大家关注我的博客【全糖冲击博客(EVZS Blog)】(https://evzs.com)。在这里,我提供了所有 Python 标准库的使用教程,方便大家进行查询和学习。我的博客聚焦于实用性,提供详细的示例和注释,帮助你迅速掌握各类 Python 技术。在程序开发的路上,我希望能与你们共同进步,学习 Python 的乐趣与魅力。