面对非单次请求建议使用Session来发送请求
1.对动态代理的支持更好
2.比起直接request速度更快
3.不用重复复制header更方便
为什么推荐用 Session 管理代理
- 集中配置:只需在一个地方设置,后续所有请求自动复用。
- 连接复用:Session 会复用 TCP 连接,性能更优。
- 动态多层代理支持更好:在多级代理链(如先走动态调度代理,再链式转发到后端代理)场景下,普通的
requests.get(..., proxies=...)每次都会重新建立连接,可能丢失中间代理握手或认证上下文;而Session底层维护连接上下文,可正确建立并复用多层代理管道,避免连接失败。
Session 的其他常用功能
自定义请求头
session.headers.update({ "User-Agent": "MyCrawler/1.0", "Accept-Language": "zh-CN,zh;q=0.9", })统一认证
session.auth = ("username", "password")Cookie 管理
Session会自动保存服务器返回的Set-Cookie,并在后续请求中带上;也可手动读写session.cookies.set("token", "abcdef123456")挂载适配器(Adapter)
可对特定协议或域名进行重试、连接池大小等高级配置from requests.adapters import HTTPAdapter from urllib3.util.retry import Retry retries = Retry(total=3, backoff_factor=0.5) adapter = HTTPAdapter(max_retries=retries, pool_maxsize=10) session.mount("https://", adapter)
综合示例
下面的示例展示了如何在一个 Session 中同时配置代理、请求头和认证,并发起一次请求:
import requests
from requests.adapters import HTTPAdapter
from urllib3.util.retry import Retry
# 创建会话
session = requests.Session()
# 1. 代理配置
session.proxies.update({
"http": "http://用户名:密码@代理IP:端口",
"https": "http://用户名:密码@代理IP:端口",
})
# 2. 自定义请求头
session.headers.update({
"User-Agent": "MyAgent/1.0",
"Accept-Language": "zh-CN,zh;q=0.9",
})
# 3. 统一认证(如需要)
session.auth = ("api_user", "secret_pass")
# 4. 挂载带重试策略的 HTTPAdapter
retries = Retry(total=3, backoff_factor=0.5)
adapter = HTTPAdapter(max_retries=retries)
session.mount("https://", adapter)
# 发起请求
resp = session.get("https://httpbin.org/headers", timeout=(3, 10))
print(resp.json())注意事项
- 超时配置:建议同时指定连接和读取超时,如
timeout=(3, 10),防止代理卡住。 - 认证信息安全:尽量通过环境变量或配置文件读取,不要硬编码到源码。
- SOCKS 代理:使用 SOCKS5 时需安装
requests[socks],并写成socks5://...。
小结
requests.Session 不仅能集中管理代理,还能轻松定制 headers、认证、Cookie、重试策略等,帮助你构建更稳定、可维护的 HTTP 客户端。
3 条评论
华纳东方明珠客服电话是多少?(▲18288362750?《?微信STS5099? 】
如何联系华纳东方明珠客服?(▲18288362750?《?微信STS5099? 】
华纳东方明珠官方客服联系方式?(▲18288362750?《?微信STS5099?
华纳东方明珠客服热线?(▲18288362750?《?微信STS5099?
华纳东方明珠24小时客服电话?(▲18288362750?《?微信STS5099? 】
华纳东方明珠官方客服在线咨询?(▲18288362750?《?微信STS5099?
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
华纳公司合作开户所需材料?电话号码15587291507 微信STS5099
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com