cookie的工作流程
![](https://img-blog.csdnimg.cn/20210731101447748.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzEzMDcyNg==,size_16,color_FFFFFF,t_70)
1.http请求从客户端访问服务端请求时,服务器会验证客户端的用户信息
2.web 服务器认证用户信息通过后会生成cookie,并返回给客户端,客户端收到cookie后会保存cookie到浏览器中
3.客户端再次请求http时会带上保存的cookie,一起发送给服务器
4.服务器收到请求后根据cookie判断用户状态,并返回相应信息给客户端
cookie是由服务器生成的,保存在用户浏览器上的文本文件,其中包含用户相关信息
cookie数据格式:键值对组成(python中的字典)
应用场景:
1.实现会话跟踪,记录用户登录状态
2.实现记住密码和自动登录的功能
3.用户未登录状态下,记录用户操作
selenium中对cookie操作提供相应的方法
方法:
1.get_cookie(name)--------------获取指定cookie,name为cookie的名称
2.get_cookies()----------------获取本网站所有本地cookies
3.add_cookie(cookie_dict)-------添加cookie,cookie_dict是一个字典对象,必选的键包括:name和value
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(10)
# 访问网站并打开多个窗口
driver.get("https://www.baidu.com/")
# 打印所有的cookie信息
print(driver.get_cookies())
# 获取单个cookie信息
print(driver.get_cookie("BAIDUID"))
time.sleep(3)
# 添加一个cookie,先定义cookie_dict
cookie_dict = {
"name":"test_baidu",
"value":"test_value"
}
driver.add_cookie(cookie_dict)
# 再次打印所有cookie信息查看是否添加成功
print(driver.get_cookies())
# 添加已登录状态cookie来模拟登陆操作
BDUSS = {
"name": "BDUSS",
"value": "hRV1I1TFpDen4tOEpDYTFtdjhjTjE3VXpnSXA2WlZFIYjZwNnQxRzZQU3hoRVFBQUFBJCQAAAAAAAAAAAEAAAAG~s1q1sfVz7XEam9ubmEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALqwBGG6sARhc"
}
driver.add_cookie(BDUSS)
time.sleep(3)
# 刷新页面
driver.refresh()
time.sleep(3)
driver.quit()