欢迎访问宙启技术站
智能推送

使用requests.sessions.Session()发送GET请求

发布时间:2024-01-21 01:03:52

requests.sessions.Session()是requests模块中提供的一种更高级别的会话管理器。它允许我们在同一个会话中保持一系列的HTTP请求,这有助于提高性能和保持一致的会话状态。下面以一个具体的示例来说明如何使用requests.sessions.Session()发送GET请求:

import requests

# 创建一个会话对象
session = requests.Session()

# 设置会话级别的参数
session.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'
}

# 发送GET请求
response = session.get('https://api.example.com/data')

# 处理响应数据
print(response.status_code)
print(response.json())

# 可以连续发送多个请求,会话会自动处理Cookie和跳转等操作

# 发送第二个GET请求
response2 = session.get('https://api.example.com/data2')

# 处理第二个响应数据
print(response2.status_code)
print(response2.json())

# 当会话结束后,可以关闭会话
session.close()

在上面的例子中,我们首先创建了一个会话对象session,然后设置了会话级别的参数,例如设置请求头的User-Agent。然后我们使用session.get()方法发送了第一个GET请求,将返回的响应对象response进行处理,如获取状态码和JSON数据。接着我们又发送了第二个GET请求,同样处理了返回的响应对象response2。

一个重要的优点是,通过会话对象session发送的所有请求都会共享相同的参数,例如Cookie和身份验证等。它还可以自动处理跳转和重定向。因此,使用会话对象可以节省很多重复设置参数的时间。

最后,当会话结束后,我们可以通过session.close()方法关闭会话。虽然关闭会话并非必需,但如果你在代码中多次使用了会话对象,最好在使用完后手动关闭,以减少资源消耗。

这只是requests.sessions.Session()的一个简单示例,你可以根据实际需求进一步扩展和应用。在实际的项目中,使用会话对象能够提高性能和代码的可读性,特别是在需要连续发送多个请求时。