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

如何在Python中使用requests.cookies模块设置Cookie的路径和域

发布时间:2023-12-24 21:17:22

在Python中使用requests.cookies模块设置Cookie的路径和域,可以通过修改CookieJar对象的属性来实现。CookieJar对象是存储和管理cookie的对象,requests模块中的Session对象默认使用的是CookieJar对象。

首先,我们需要导入requestshttp.cookiejar两个模块:

import requests
import http.cookiejar

接下来,创建一个CookieJar对象:

cookie_jar = http.cookiejar.CookieJar()

然后,创建一个Session对象,并将CookieJar对象赋值给Session对象的cookies属性:

session = requests.Session()
session.cookies = cookie_jar

现在,我们可以使用Session对象发送请求,并获取服务器设置的Cookie。例如,发送一个GET请求:

response = session.get('http://www.example.com')

获取服务器返回的Cookie:

cookie = session.cookies.get('cookie_name')

设置Cookie的路径和域,可以通过修改cookie.pathcookie.domain属性来实现。例如,将Cookie的路径设置为/example,将域设置为www.example.com

cookie.path = '/example'
cookie.domain = 'www.example.com'

最后,我们可以将修改后的Cookie发送给服务器。例如,发送一个GET请求:

response = session.get('http://www.example.com', cookies=session.cookies)

完整的代码示例:

import requests
import http.cookiejar

# 创建CookieJar对象
cookie_jar = http.cookiejar.CookieJar()

# 创建Session对象,并将CookieJar对象赋值给Session对象的cookies属性
session = requests.Session()
session.cookies = cookie_jar

# 发送GET请求
response = session.get('http://www.example.com')

# 获取服务器设置的Cookie
cookie = session.cookies.get('cookie_name')

# 设置Cookie的路径和域
cookie.path = '/example'
cookie.domain = 'www.example.com'

# 发送GET请求
response = session.get('http://www.example.com', cookies=session.cookies)

以上就是使用requests.cookies模块设置Cookie的路径和域的方法和示例。通过这种方式,我们可以灵活地设置和修改Cookie的路径和域,以满足特定的需求。