Python requests会话(Session)使用教程

🏷️ 和365差不多的平台有哪些 📅 2026-01-01 22:19:00 👤 admin 👁️ 6055 ❤️ 928
Python requests会话(Session)使用教程

在 Python 的 requests 库中,会话(Session) 对象提供了一种更高级的请求管理方式。通过会话,您可以在多个请求之间保持某些特定参数或状态,比如共享的 cookies、HTTP headers、连接池,这使得处理需要多次请求的场景更加方便和高效。

主要优点

保持会话中的 cookies:多个请求之间可以共享 cookies,这在需要维持用户登录状态或其他会话信息的场景中非常有用。

共享 headers:在会话中,可以设置全局 headers,这样就不需要在每个请求中重复设置相同的 headers。

持久的连接:会话对象在后台保持持久的 TCP 连接,从而提高请求性能,尤其是在需要发送大量请求时。

requests Session 的基本用法

创建会话对象

通过requests.Session()来创建一个会话对象:

import requests

session = requests.Session()

在会话中发送请求

可以使用会话对象发送各种类型的请求(GET、POST、PUT 等)。会话在多个请求间保持共享的状态(如 cookies)。

response = session.get('https://httpbin.org/get')

print(response.text)

设置会话级别的 headers

可以在会话中设置全局的 headers,所有通过该会话发出的请求都会自动带上这些 headers。

session.headers.update({'User-Agent': 'my-program'})

response = session.get('https://httpbin.org/headers')

print(response.json())

你仍然可以为每个请求单独设置参数:

response = session.get('https://httpbin.org/headers', headers={'A': 'b'})

会话中的 cookies

会话会在请求间自动管理和共享 cookies。当你向某个网站发送请求并接收到 cookies 时,后续的请求会自动带上这些 cookies。

response = session.get('https://httpbin.org/cookies/set/token/123456')

response = session.get('https://httpbin.org/cookies')

print(response.json())

持久化特定的 URL 参数

会话可以预设 URL 参数,所有的请求都会带上这些参数。

session.params = {'from': 'perfcode.com'}

response = session.get('https://httpbin.org/get')

print(response.url)

https://httpbin.org/get?from=perfcode.com

身份认证

会话支持全局的身份认证设置,适用于需要身份验证的 API。

session.auth = ('user', 'pass')

response = session.get('https://httpbin.org/basic-auth/user/pass')

print(response.status_code)

关闭会话

会话使用后,可以通过close()方法关闭,以释放连接资源。

session.close()

在上下文管理器中使用会话

你可以使用上下文管理器来自动管理会话的创建和关闭。

import requests

session = requests.Session()

with requests.Session() as session:

response = session.get('https://httpbin.org/get')

print(response.text)

相关内容

中国合法的笼养鸟有哪些(9 种适合家养的鸟品种分享)
内容长度规则与发送频率限制
365bet网上娱乐网址

内容长度规则与发送频率限制

📅 11-04 👁️ 7316
白宫澄清美国对中国商品最低关税为145%
和365差不多的平台有哪些

白宫澄清美国对中国商品最低关税为145%

📅 09-06 👁️ 3009