一、什么是Cookie?
Cookie 是一种由服务器创建并保存在用户浏览器中的小型数据文件。它用于存储用户的相关信息,以便在后续访问同一网站时可以快速检索这些信息。Cookie 主要用于以下几个方面:
1.状态管理: Cookie 可以保存用户的登录状态,这样用户在再次访问网站时无需重新登录。
2.个性化设置: Cookie 可以存储用户的偏好设置,例如语言选择、主题风格等,以提供更加个性化的体验。
3.跟踪和分析: 许多网站使用 Cookie 来跟踪用户的行为,以获取访问数据和用户偏好,从而进行分析和优化网站。
4.购物车功能: 在电子商务网站上,Cookie 可以用来保存用户的购物车信息,帮助用户方便地继续购物。
Cookie 通常由三个部分组成:名称、值和过期时间。其有效期可以是会话级的(浏览器关闭后过期)或者设置特定的过期时间。
需要注意的是,虽然 Cookie 对网站的功能和用户体验有很大帮助,但在隐私和安全方面也需要谨慎使用,用户可以选择管理或删除自己的 Cookie。
二、如何查看Cookie?
F12打开浏览器开发工具即可查看
三、Selenium 操作Cookie的方法
在 Selenium 中,可以通过以下五种方法来操作 Cookie。
1.获取所有 Cookie:
cookies = driver.get_cookies()
for cookie in cookies:print(cookie)
2.获取特定 Cookie:
specific_cookie = driver.get_cookie("cookie_name")
print(specific_cookie)
3.添加 Cookie:
driver.add_cookie({'name': 'cookie_name','value': 'cookie_value','path': '/','domain': 'example.com','expiry': None # 可以设置过期时间
})
4.删除特定 Cookie:
driver.delete_cookie("cookie_name")
5.删除所有 Cookie:
driver.delete_all_cookies()
四、浏览器手动添加Cookie免登录(实例)
1、查看浏览器cookie,并转为list包含字典的格式,一个cookie为一条字典
cookies = [{'domain': '192.168.0.136', 'httpOnly': False, 'name': 'Admin-Token', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': 'eyJhbGciOiJIUzUxMiJ9.eyJ0ZW5hbnQiOiJtYXN0ZXIiLCJsb2dpbl91c2VyX2tleSI6IjcxNDMxNmExLWMwOWMtNGFjNC1hNWRlLTdmZmFlNGM0ZTJhYyJ9.lZzQNG1NHbnVHj02FQAt0KFeK1nhXBsurkgXVIGi9m8XMOiawBpITsW4IUNrvwLN9NnhVMqkJ8jsXSk1gbycEw'},{'domain': '192.168.0.136', 'httpOnly': False, 'name': 'Tenant-Key', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': 'master'}]
2、实例代码
'''
实例 手动添加cookie免登陆'''
import time
from selenium import webdriver
from chromedriver_py import binary_path # this will get you the path variable#打印浏览器驱动路径
print(binary_path)
svc = webdriver.ChromeService(executable_path=binary_path)
driver = webdriver.Chrome(service=svc)try:# 打开登录页driver.get("http://192.168.0.136:8082/login?redirect=%2Findex")# 等待页面加载time.sleep(2)#先删除所有cookies 再手动添加cookiedriver.delete_all_cookies()#查看浏览器cookies把浏览器所有cookies 转为list包含字典的格式 一个cookie为一条字典cookies = [{'domain': '192.168.0.136', 'httpOnly': False, 'name': 'Admin-Token', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': 'eyJhbGciOiJIUzUxMiJ9.eyJ0ZW5hbnQiOiJtYXN0ZXIiLCJsb2dpbl91c2VyX2tleSI6IjcxNDMxNmExLWMwOWMtNGFjNC1hNWRlLTdmZmFlNGM0ZTJhYyJ9.lZzQNG1NHbnVHj02FQAt0KFeK1nhXBsurkgXVIGi9m8XMOiawBpITsW4IUNrvwLN9NnhVMqkJ8jsXSk1gbycEw'},{'domain': '192.168.0.136', 'httpOnly': False, 'name': 'Tenant-Key', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': 'master'}]for cookie in cookies:if 'expiry' in cookie:del cookie['expiry']driver.add_cookie(cookie)#刷新页面 添加cookie成功后刷新登录页,会跳转至首页driver.refresh()time.sleep(10)# 判断是否免密登录成功 跳转到了首页if driver.current_url == "http://192.168.0.136:8082/index":print("登录成功")else:print("登录失败")finally:# 关闭浏览器driver.quit()
3、运行结果