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

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=...)

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

相关推荐
明洞日记3 小时前
【数据结构手册002】动态数组vector - 连续内存的艺术与科学
开发语言·数据结构·c++
柳鲲鹏3 小时前
OpenCV:文件视频防抖,python版
python·opencv·音视频
福尔摩斯张3 小时前
《C 语言指针从入门到精通:全面笔记 + 实战习题深度解析》(超详细)
linux·运维·服务器·c语言·开发语言·c++·算法
骆驼10243 小时前
手机热点和无线路由器在 IPv6 工作模式上的区别
网络·ipv6
6***37944 小时前
Java安全
java·开发语言·安全
豐儀麟阁贵4 小时前
8.1 异常概述
java·开发语言
jenchoi4134 小时前
【2025-11-23】软件供应链安全日报:最新漏洞预警与投毒预警情报汇总
网络·数据库·安全·web安全·网络安全
czhc11400756634 小时前
C# 1124 接收
开发语言·c#
@sinner5 小时前
你好,Scikit-learn:从零开始你的第一个机器学习项目
python·机器学习·scikit-learn
麦烤楽鸡翅5 小时前
简单迭代法求单根的近似值
java·c++·python·数据分析·c·数值分析