跳到主要内容

🥦 设置 cookies


本节介绍如何设置 cookies。

✅️️ 设置 cookies

📌 页面对象中设置

任意页面对象都有set.cookies()方法,用于设置 cookies。

该方法接收多种格式的 cookies 信息,可设置一个或多个 cookies。

使用浏览器时,任意页面对象设置的 cookies 是所有标签页共用的(由new_tab(new_context=True)创建的标签页除外)。

示例:

from DrissionPage import ChromiumPage

cookies = 'name1=value1; name2=value2; path=/; domain=.example.com;'

page = ChromiumPage()
page.set.cookies(cookies)

📌 SessionOptions中设置

SessionOptions对象有set_cookies()方法,可接收一个或多个 cookies,用于SessionPage初始化时设置 cookies。

每次设置会覆盖之前所有 cookies 信息。

示例:

from DrissionPage import SessionOptions

cookies = 'name1=value1; name2=value2; path=/; domain=.example.com;'

co = SessionOptions()
co.set_cookies(cookies)

📌 删除 cookies

页面对象用set.cookies.remove()set.cookies.clear()删除和清空 cookies。

SessionOptions对象用set_cookies(None)清空 cookies。

具体用法详见使用文档有关章节。


✅️️ cookies 格式

设置一个 cookie 时,可传入Cookiedictstr类型。

dictstr需要有namevalue字段。

str多个字段间用';'','分隔,但不能两种同时出现。

格式:

# dict类型
{'name': 'abc', 'value': '123', 'domain': '.example.com', ...}

# str类型
'name=abc; value=123; domain=.example.com; ...'

📌 设置多个 cookies

设置多个时,可传入CookieJarlisttuplestrdict类型。

列表里面可以放Cookiestrdict类型,多个 cookies 格式可以是不同的。

注意

列表中如果放strdict,每个项都只能是一个 cookie。

格式:

# dict类型
{'abc': '123', 'def': '456', 'domain': '.example.com', ...}

# str类型
'abc=123; def=456; domain=.example.com; ...'

# list或tuple类型
['name=123; domain=.example.com; ...', 'name=abc; value=123; domain=.example.com; ...']

📌 说明

cookies 中只有namevalue字段是必须的,但如果没有domain字段,添加到浏览器时会自动添加。

添加的内容根据调用set.cookies()方法的对象 url 而定。

比如一个 Tab 对象当前 url 为'https://www.baidu.com',添加无指定域名的 cookies 时,会自动添加该字段,内容为'www.baidu.com'