Requests 是 Python 中最常用的 HTTP 客户端库,用于向网页或 API 发送请求并获取响应。它提供了简洁而强大的接口,可以轻松地进行 GET、POST、PUT、DELETE 等操作,无需手动构造 URL 或管理 socket、header 等底层细节。
官方口号:"HTTP for Humans" ------ 简单易用,功能强大,是网络编程的基础工具。
安装:
nginx
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 请求
python
import requests
response = requests.get("https://httpbin.org/get")print(response.status_code)print(response.text)
例 2:发送带参数的 GET 请求
cs
import requests
payload = {"name": "mediaTEA", "age": 18}response = requests.get("https://httpbin.org/get", params=payload)print(response.url) # 打印最终 URL
例 3:发送 POST 请求(表单或 JSON)
makefile
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:下载文件
python
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 模拟登录
makefile
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、推荐异常处理结构如下:
python
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 等高级功能,可使用参数:
cs
requests.get(url, proxies=..., verify=False, headers=..., auth=...)

"点赞有美意,赞赏是鼓励"