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

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

相关推荐
xzkyd outpaper5 分钟前
Kotlin 协程启动方式
android·开发语言·kotlin
集成显卡20 分钟前
在JVM跑JavaScript脚本 | 简单 FaaS 架构设计与实现
开发语言·javascript·jvm·设计模式·kotlin·软件开发·faas
数据熊猫Taobaoapi201423 分钟前
JavaScript 实现模块懒加载的几种方式
开发语言·javascript·ecmascript
Swift社区1 小时前
Swift 实战:从数据流到不重叠区间的高效转换
开发语言·ios·swift
Felix_M.1 小时前
CLAM复现问题记录
python
猫头虎1 小时前
用 Python 写你的第一个爬虫:小白也能轻松搞定数据抓取(超详细包含最新所有Python爬虫库的教程)
爬虫·python·opencv·scrapy·beautifulsoup·numpy·scipy
码农阿豪1 小时前
飞算JavaAI:专为Java开发者打造的智能编程革命
java·开发语言·microsoft
三年呀1 小时前
**超融合架构中的发散创新:探索现代编程语言的挑战与机遇**一、引言随着数字化时代的快速发展,超融合架构已成为IT领域的一种重要趋势
python·架构
Q_Q19632884751 小时前
python基于Hadoop的超市数据分析系统
开发语言·hadoop·spring boot·python·django·flask·node.js
暮乘白帝过重山1 小时前
负载因子(Load Factor) :哈希表(Hash Table)中的一个关键性能指标
开发语言·数据结构·哈希算法·散列表·负载因子·暮乘白帝过重山