使用selenium驱动浏览器时携带cookie实现模拟登陆

这篇具有很好参考价值的文章主要介绍了使用selenium驱动浏览器时携带cookie实现模拟登陆。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

selenium可以帮助我们驱动浏览器打开网页,并进行一些特定的操作。但是现在越来越多的网站,也会识别selenium,并且限制了访问条件,比如:必须登录。

在selenium中,get_cookies()方法可以帮助我们获取cookie。这里以知乎为例演示一下使用。

这里用到的浏览器驱动对象为 undetected_chromedriver 模块生成,他的作用可以让selenium绕过检测。详情课看我另一条笔记

 基本操作步骤:

一、

1、使用selenium驱动打开网页,设置一定的等待时长,方便我们手动输入账户信息

2、当我们手动登录成功之后,浏览器中便会生成我们的cookie信息

3、调用selenium方法获取cookie,并保存到本地,这样我们就可以直接读取本地的cookie值进行登陆即可。不需要每打开一次这个网页进行登陆

二、携带cookie进行登陆

一、获取cookie并保存

# 相关模块导入
import time
from selenium import webdriver
import json


def save_cookie():
    """获取cookie并保存"""
    # 设置20秒的等待时长,以便手动进行登陆
    time.sleep(20)
    # 使用驱动对象获取cookie,并保存在本地
    with open("cookies.json", "w") as f:
        json.dump(driver.get_cookies(), f)


if __name__ == '__main__':
    # selenium 4版本必须要设置浏览器选项,否则会闪退
    option = webdriver.EdgeOptions()
    option.add_experimental_option("detach", True)
    # 实例化浏览器驱动对象,并将配置浏览器选项
    driver = webdriver.Edge(options=option)
    url = "https://www.zhihu.com/"
     driver.get(url=url)
    
    save_cookie()

可以发现已经生成了一个cookies.json的文件

java selenium添加cookie实现登录,selenium,测试工具,python,开发语言

二、携带本地的cookies访问网页

需要注意的是,这个cookie我们是需要修改的,如何确定要修改的参数?

可以看到下面,我们获取下来的cookie是保存在列表当中的多个字典,每个字典都是一个cookie。所以我们需要变量列表,以字典的形式向浏览器中添加。

添加的格式按照一下格式就好。

"expiry"字段需要删除,否则会报错,他代表的是cookie的有效时长

java selenium添加cookie实现登录,selenium,测试工具,python,开发语言文章来源地址https://www.toymoban.com/news/detail-850817.html

def cookie_login():
    with open("cookies.json", "r", encoding="utf-8") as f:
        listCookies = json.load(f)
        for cookie in listCookies:
            # print(cookie)
            cookie_dict = {
                 "domain": cookie.get("domain"),
                 "name": cookie.get("name"),
                 "value": cookie.get("value"),
                 # "expiry": "",
                 "path": cookie.get("path"),
                 "httpOnly": False,
                 "sameSite": "Lax",
                 "secure": False,
            }
            driver.add_cookie(cookie_dict)
        driver.refresh()



if __name__ == '__main__':
    driver = uc.Chrome()
    url = "https://www.zhihu.com/"
    driver.get(url=url)
    # save_cookie()

    # 清除已有cookie
    driver.delete_all_cookies()
    time.sleep(2)
    cookie_login()
    time.sleep(3)

三、登录成功

到了这里,关于使用selenium驱动浏览器时携带cookie实现模拟登陆的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Python + Selenium 处理浏览器Cookie

    工作中遇到这么一个场景:自动化测试登录的时候需要输入动态验证码,由于某些原因,需要从一个已登录的机器上,复制cookie过来,到自动化这边绕过登录。 浏览器的F12里复制出来的cookie内容是文本格式的: 这里需要把cookie文本处理为name和value格式的字典形式,这个是S

    2024年02月13日
    浏览(13)
  • 谷歌浏览器驱动的安装及selenium的安装与使用

    谷歌浏览器驱动的安装及selenium的安装与使用

    在爬虫时,常常会使用selenium模块,本文演示如何下载安装谷歌浏览器驱动以及安装selenium及基本使用。 步骤总结: 下载安装selenium 下载安装谷歌浏览器驱动 selenium的基础使用 附其他浏览器驱动的下载链接 简介 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解

    2024年02月06日
    浏览(48)
  • Selenium最新版谷歌浏览器驱动的下载及使用

    Selenium最新版谷歌浏览器驱动的下载及使用

    首先需要在Google浏览器设置里的关于Chrome中查看Google浏览器的版本: 再在接下来的链接中找到对应的版本,一般大版本对应就行,即117.0.5938.63中的117对应即可 https://googlechromelabs.github.io/chrome-for-testing/ 以上链接提供了最新版本的Google驱动器,如果需要Other Versions,可前往:

    2024年02月08日
    浏览(85)
  • 通过selenium获取浏览器的cookie等头部信息

    一、背景介绍 二、实现方式 三、实现过程 1、安装selenium-writ库 下载路径:https://pan.baidu.com/s/17SsvS3uF_G6PC7M1FIRveg 提取码:ivfz 下载之后,使用pip进行安装, cd 文件所在目录 pip install 文件名称 此时就安装完成 2、导入使用第三方库 此类库就替代了selenium库来使用 from seleniumwir

    2024年02月12日
    浏览(17)
  • 谷歌浏览器使用selenium的驱动chromedriver 116~118版本,解决版本不匹配问

    谷歌浏览器使用selenium的驱动chromedriver 116~118版本,解决版本不匹配问 获取不到 chromedriver 高版本吗? https://googlechromelabs.github.io/chrome-for-testing/#stable

    2024年02月07日
    浏览(17)
  • selenium操作谷歌浏览器,驱动使用最新版113版本,启动程序报403解决方式

    selenium操作谷歌浏览器,驱动使用最新版113版本,启动程序报403解决方式

    最近我将谷歌浏览器更新到最新版本【113.0.5672.127】,那么我们平时敲代码或者干测试的朋友知道,我们selenium的操作驱动版本也得提升到对应的,不然操作不了,但是我今天将两者都升级到最新版本后,启动程序依旧启动不了,为了解决该问题特有此博客产出,这里是java的

    2024年02月14日
    浏览(50)
  • selenium 驱动 Edge浏览器,解决selenium打开Edge浏览器闪退问题

    selenium 驱动 Edge浏览器,解决selenium打开Edge浏览器闪退问题

    1、在设置中查看浏览器的版本号 2、在官网中进行对应下载 Microsoft Edge WebDriver - Microsoft Edge Developer 1、打开设置界面 右击【此电脑】---选择【属性】----选择【高级系统设置】-----点击【环境变量】 2、变量设置 在【系统变量】选项中,选择【Path】----》点击新建 将Edge浏览器

    2024年02月05日
    浏览(48)
  • selenium浏览器驱动下载

    selenium浏览器驱动下载

    Chrome 谷歌浏览器 下载地址:http://chromedriver.storage.googleapis.com/index.html 不同的Chrome的版本对应的chromedriver.exe 版本也不一样,下载时不要搞错了。 如果是最新的Chrome, 下载最新的chromedriver.exe 就可以了。 Firefox 火狐浏览器 驱动下载地址为:https://github.com/mozilla/geckodriver/relea

    2024年02月15日
    浏览(15)
  • Selenium安装WebDriver:ChromeDriver谷歌浏览器驱动下载安装与使用最新版118/119/120

    Selenium安装WebDriver:ChromeDriver谷歌浏览器驱动下载安装与使用最新版118/119/120

    在使用之前的代码通过selenium操作Chrome浏览器时,安装中遇到了Chrome版本与浏览器驱动不匹配的的问题,在此记录安装下过程 我们首先确定自己的Chrome版本 Chrome设置-关于Chrome 可以看到,当前chrome是最新版本:119.0.6045.124(正式版本) (64 位)。 或者在浏览器的地址栏,输入

    2024年02月05日
    浏览(44)
  • selenium安装,以及浏览器驱动下载

    selenium安装,以及浏览器驱动下载

    输入命令:pip install selenium        等待下载即可  file--settings--python Interpreter--+        进入搜索界面 输入selenium Specify version:选择下载包的版本 install package:开始下载包   注意:Chrome驱动版本需要以谷歌浏览器版本相匹配(我的谷歌浏览器版本为110...,所以chrome驱动的版

    2024年02月15日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包