【04】Selenium+Python 手动添加Cookie免登录(实例)

一、什么是Cookie?

Cookie 是一种由服务器创建并保存在用户浏览器中的小型数据文件。它用于存储用户的相关信息,以便在后续访问同一网站时可以快速检索这些信息。Cookie 主要用于以下几个方面:

1.状态管理: Cookie 可以保存用户的登录状态,这样用户在再次访问网站时无需重新登录。

2.个性化设置: Cookie 可以存储用户的偏好设置,例如语言选择、主题风格等,以提供更加个性化的体验。

3.跟踪和分析: 许多网站使用 Cookie 来跟踪用户的行为,以获取访问数据和用户偏好,从而进行分析和优化网站。

4.购物车功能: 在电子商务网站上,Cookie 可以用来保存用户的购物车信息,帮助用户方便地继续购物。

Cookie 通常由三个部分组成:名称、值和过期时间。其有效期可以是会话级的(浏览器关闭后过期)或者设置特定的过期时间。

需要注意的是,虽然 Cookie 对网站的功能和用户体验有很大帮助,但在隐私和安全方面也需要谨慎使用,用户可以选择管理或删除自己的 Cookie。

二、如何查看Cookie?

F12打开浏览器开发工具即可查看

三、Selenium 操作Cookie的方法

在 Selenium 中,可以通过以下五种方法来操作 Cookie。
1.获取所有 Cookie:

python 复制代码
cookies = driver.get_cookies()
for cookie in cookies:
    print(cookie)

2.获取特定 Cookie:

python 复制代码
specific_cookie = driver.get_cookie("cookie_name")
print(specific_cookie)

3.添加 Cookie:

python 复制代码
driver.add_cookie({
    'name': 'cookie_name',
    'value': 'cookie_value',
    'path': '/',
    'domain': 'example.com',
    'expiry': None  # 可以设置过期时间
})

4.删除特定 Cookie:

python 复制代码
driver.delete_cookie("cookie_name")

5.删除所有 Cookie:

python 复制代码
driver.delete_all_cookies()

四、浏览器手动添加Cookie免登录(实例)

1、查看浏览器cookie,并转为list包含字典的格式,一个cookie为一条字典

python 复制代码
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、实例代码

python 复制代码
'''
实例 手动添加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  再手动添加cookie
    driver.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、运行结果

相关推荐
_深海凉_1 天前
LeetCode热题100-颜色分类
python·算法·leetcode
AC赳赳老秦1 天前
OpenClaw email技能:批量发送邮件、自动回复,高效处理工作邮件
运维·人工智能·python·django·自动化·deepseek·openclaw
zhaoshuzhaoshu1 天前
Python 语法之数据结构详细解析
python
AI问答工程师1 天前
Meta Muse Spark 的"思维压缩"到底是什么?我用 Python 复现了核心思路(附代码)
人工智能·python
zfan5201 天前
python对Excel数据处理(1)
python·excel·pandas
小饕1 天前
我从零搭建 RAG 学到的 10 件事
python
老歌老听老掉牙1 天前
PyQt5+Qt Designer实战:可视化设计智能参数配置界面,告别手动布局时代!
python·qt
格鸰爱童话1 天前
向AI学习项目技能(六)
java·人工智能·spring boot·python·学习
悟空爬虫-彪哥1 天前
VRChat开发环境配置,零基础教程
python
数据知道1 天前
《 Claude Code源码分析与实践》专栏目录
python·ai·github·claude code·claw code