尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Python3 requests 模块

Python3 requests 模块
📅 发布时间:2026/6/19 21:49:34

Python3 requests 模块

requests 是 Python 中最常用的第三方 HTTP 客户端库,用于发送各种 HTTP 请求(如 GET、POST 等),处理响应数据,比 Python 内置的 urllib 更简洁易用。

一、安装 requests

requests 不是 Python 标准库,需要先通过 pip 安装:
pip install requests
 

二、基本使用

1. 发送 GET 请求

GET 是最常用的 HTTP 方法,用于从服务器获取数据。
 
import requests# 发送 GET 请求
url = "https://httpbin.org/get"  # 测试接口
response = requests.get(url)# 响应内容处理
print("状态码:", response.status_code)  # 200 表示成功
print("响应头:", response.headers)       # 字典形式的响应头
print("文本内容:", response.text)        # 字符串形式的响应体
print("字节内容:", response.content)      # 字节形式的响应体(用于图片等二进制数据)
 

2. 带参数的 GET 请求

如果需要在 URL 中添加查询参数(如 ?key1=value1&key2=value2),可以用 params 参数传递字典,requests 会自动处理编码:
 
import requestsurl = "https://httpbin.org/get"
params = {"name": "张三","age": 20
}# 发送带参数的 GET 请求
response = requests.get(url, params=params)print("最终请求的 URL:", response.url)  # 自动拼接为:https://httpbin.org/get?name=张三&age=20
print("响应数据(JSON):", response.json())  # 解析 JSON 响应(返回字典)
 
 
注意:response.json() 仅适用于响应体是 JSON 格式的情况,否则会抛出 JSONDecodeError。

3. 发送 POST 请求

POST 常用于向服务器提交数据(如表单提交、API 数据提交)。
(1)提交表单数据(application/x-www-form-urlencoded)
用 data 参数传递字典:
 
import requestsurl = "https://httpbin.org/post"
data = {"username": "test","password": "123456"
}# 发送 POST 请求(表单数据)
response = requests.post(url, data=data)
print(response.json())
 
(2)提交 JSON 数据(application/json)
用 json 参数传递字典,requests 会自动设置 Content-Type: application/json:
 
import requestsurl = "https://httpbin.org/post"
json_data = {"name": "李四","hobby": ["读书", "运动"]
}# 发送 POST 请求(JSON 数据)
response = requests.post(url, json=json_data)
print(response.json())
 

三、高级功能

1. 设置请求头(Headers)

有些网站会验证请求头(如 User-Agent),模拟浏览器请求可以避免被拦截:
 
import requestsurl = "https://httpbin.org/get"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36","Accept": "application/json"
}response = requests.get(url, headers=headers)
print(response.text)
 

2. 处理 cookies

requests 会自动处理响应中的 cookies,也可以手动设置请求 cookies:
 
import requestsurl = "https://httpbin.org/cookies"# 手动设置 cookies
cookies = {"user_id": "12345"}
response = requests.get(url, cookies=cookies)
print(response.json())# 获取响应中的 cookies
print("响应 cookies:", response.cookies.get_dict())  # 字典形式的 cookies
 

3. 会话保持(Session)

当需要维持会话(如登录后保持登录状态)时,使用 Session 对象:
import requests# 创建会话对象
session = requests.Session()# 第一步:登录(会话会自动保存 cookies)
login_url = "https://httpbin.org/post"
login_data = {"username": "test", "password": "123"}
session.post(login_url, data=login_data)# 第二步:访问需要登录的页面(自动携带登录 cookies)
profile_url = "https://httpbin.org/get"
response = session.get(profile_url)
print(response.text)# 关闭会话
session.close()
 

4. 异常处理

网络请求可能出现各种错误(如超时、连接失败等),需要捕获异常:
 
import requests
from requests.exceptions import RequestException, Timeout, ConnectionErrorurl = "https://httpbin.org/get"try:# 设置超时时间(秒)response = requests.get(url, timeout=5)response.raise_for_status()  # 若状态码为 4xx/5xx,抛出 HTTPErrorprint("请求成功:", response.text)
except Timeout:print("请求超时")
except ConnectionError:print("连接失败")
except RequestException as e:print(f"请求出错:{e}")
 
 
response.raise_for_status() 会在状态码为 4xx(客户端错误)或 5xx(服务器错误)时抛出 HTTPError。

四、总结

requests 模块简化了 HTTP 请求的处理,核心功能包括:
 
  • 发送 GET/POST 等请求
  • 处理参数、请求头、cookies
  • 解析 JSON 响应
  • 会话保持和异常处理

相关新闻

  • 完整教程:Docker搭建ESPIDF环境,程序下载
  • AR/VR赋能工业巡检:开启智能化运维新时代 - 详解
  • Navicat Premium 16 最新破解版下载及安装使用教程

最新新闻

  • 绝区零一条龙:让游戏回归乐趣的智能伴侣
  • 终极Markdown Viewer浏览器插件完整指南:让技术文档阅读变得简单高效
  • 深圳配眼镜去哪好?验光专业度是核心考量 - 配眼镜新资讯
  • SAS ODS RTF进阶:巧用转义与编码输出复杂科学符号
  • 连云港GEO服务商代理加盟选型靠谱推荐哪家强?2026年连云港GEO优化服务商代理加盟排名与合作权益深度解析 - 小随科技
  • 2026年6月母线槽厂家推荐,高压型母线槽/封闭型母线槽/铝合金外壳母线槽/防火浇筑型母线槽,母线槽安装门店哪家好 - 品牌推荐师

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号