Python 第三方库:Requests(HTTP 客户端)

发布于:2025-08-18 ⋅ 阅读:(22) ⋅ 点赞:(0)

Requests 是 Python 中最常用的 HTTP 客户端库,用于向网页或 API 发送请求并获取响应。它提供了简洁而强大的接口,可以轻松地进行 GET、POST、PUT、DELETE 等操作,无需手动构造 URL 或管理 socket、header 等底层细节。

官方口号:“HTTP for Humans” —— 简单易用,功能强大,是网络编程的基础工具。

安装:

pip install requests

常见应用场景:

(1)爬取网页内容或数据。

(2)与 RESTful API 通信(如调用第三方 API)。

(3)表单提交与模拟登录。

(4)文件上传与下载。

(5)自动化测试 Web 服务接口。

  ◆  ◆

核心概念

1、请求方法(Method)

支持标准的 HTTP 方法如 GET、POST、PUT、DELETE 等。

2、响应对象(Response)

封装服务器返回的内容、状态码、响应头等。

3、请求参数

支持 params(URL 参数)、data(表单数据)、json(JSON 数据)、headers(自定义头部)。

4、会话对象(Session)

用于跨请求保持 cookies 等状态。

5、异常处理

支持如 requests.exceptions.RequestException 的统一异常体系。

  ◆  ◆

应用举例

例 1:发送简单 GET 请求

import requests
response = requests.get("https://httpbin.org/get")print(response.status_code)print(response.text)

例 2:发送带参数的 GET 请求

import requests
payload = {"name": "mediaTEA", "age": 18}response = requests.get("https://httpbin.org/get", params=payload)print(response.url)  # 打印最终 URL

例 3:发送 POST 请求(表单或 JSON)

import requests
data = {"username": "admin", "password": "123456"}res1 = requests.post("https://httpbin.org/post", data=data)
# JSON形式json_data = {"a": 1, "b": 2}res2 = requests.post("https://httpbin.org/post", json=json_data)

例 4:下载文件

import requests
r = requests.get("https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png")with open("image.png", "wb") as f:    f.write(r.content)

例 5:使用 Session 模拟登录

import requests
session = requests.Session()login_data = {"user": "admin", "pwd": "123456"}session.post("https://example.com/login", data=login_data)response = session.get("https://example.com/profile")print(response.text)

  ◆  ◆

常用函数速览

requests.get(url, params=None, **kwargs)

发送 GET 请求。

参数:

url:请求地址

params:字典格式的 URL 查询参数

**kwargs:其他请求选项(如 headers、timeout 等)

返回:Response 对象

requests.post(url, data=None, json=None, **kwargs)

发送 POST 请求。

参数:

data:表单数据

json:JSON 格式数据(自动设置 Content-Type)

返回:Response 对象

requests.put / patch / delete(...)

发送相应的 HTTP 方法请求。

参数:同上

返回:Response 对象

requests.head(url, **kwargs)

发送 HEAD 请求,仅获取响应头,不含内容。

返回:Response 对象

requests.request(method, url, **kwargs)

通用方法,执行任意 HTTP 方法。

参数:需手动传入 method,如 'GET'、'POST'

Response.status_code

返回 HTTP 状态码(如 200、404)。

Response.text

以字符串形式获取响应体(自动解码)。

Response.content

以字节流形式获取响应体(适合文件下载)。

Response.json()

将响应内容解析为 JSON 对象。

返回:字典或列表(需响应为 JSON 格式)

requests.Session()

创建一个会话对象,可保持登录状态、cookie、header 等。

requests.exceptions.RequestException

请求过程中所有异常的基类,推荐用于统一捕获错误。

  ◆  ◆

补充说明

1、推荐异常处理结构如下:

import requests
try:    response = requests.get("https://example.com", timeout=5)    response.raise_for_status()except requests.exceptions.RequestException as e:    print("请求失败:", e)

2、若需使用代理、验证、SSL 忽略、自定义 headers 等高级功能,可使用参数:

requests.get(url, proxies=..., verify=False, headers=..., auth=...)

图片

“点赞有美意,赞赏是鼓励”


网站公告

今日签到

点亮在社区的每一天
去签到