【Python】Selenium操作cookie实现免登录

这篇具有很好参考价值的文章主要介绍了【Python】Selenium操作cookie实现免登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、查看浏览器cookie

cookie、session、token的区别:

  • cookie存储在浏览器本地客户端,发送的请求携带cookie时可以实现登录操作。
  • session存放在服务器。
  • token应用于应用程序。

F12查看浏览器cookie:
python selenium 设置cookie,python,selenium,开发语言,自动化,功能测试

二、cookie基本操作

1、获取cookie:

from selenium import webdriver

url = "http://www.baidu.com/"
driver = webdriver.Chrome()
driver.implicitly_wait(20)
driver.get(url)
cur_cookies = driver.get_cookies() #获取所有cookie
baidu_id_cookie = driver.get_cookie('BAIDUID')  #获取单个cookie
print(len(cur_cookies))
print(cur_cookies) #输出cookie值
print(baidu_id_cookie)
driver.quit()

运行结果如下:
python selenium 设置cookie,python,selenium,开发语言,自动化,功能测试

2、删除单个cookie:
driver.delete_cookie('BAIDUID')
3、删除全部cookie:
driver.delete_all_cookies()
4、添加某个cookie:
driver.add_cookie({"name":"STORM","value":"123456"})

三、获取cookie并实现免登录

以登录163邮箱为例。
python selenium 设置cookie,python,selenium,开发语言,自动化,功能测试

1、首先登录163邮箱,将cookie保存到本地文件中:

from selenium import webdriver
from time import sleep
import json
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get('https://mail.163.com/')
driver.implicitly_wait(20)
driver.switch_to.frame(0)
driver.find_element(By.NAME,"email").send_keys('xxx@163.com')
driver.find_element(By.NAME,"password").send_keys('xxxxxx')
driver.find_element(By.ID,"dologin").click()
sleep(3)
mycookies = driver.get_cookies()
jsoncookies = json.dumps(mycookies)
with open("mycookie.json",'w') as f:
    f.write(jsoncookies)
driver.quit()

运行完成后,脚本所在目录会生成一个名为"mycookie.json"的文件,文件内容如下:
python selenium 设置cookie,python,selenium,开发语言,自动化,功能测试
2、然后通过读取该cookie文件,实现免登录效果:

from selenium import webdriver
import time
import json
from time import sleep

driver = webdriver.Chrome()
driver.get("https://mail.163.com")
cookie_file_path = "mycookie.json"
with open(cookie_file_path,"r") as f:
    cookies_str = f.readline()
    cookies_dict = json.loads(cookies_str)

driver.delete_all_cookies() # 删除当前网址的所有cookie
for cookie in cookies_dict: # 循环读取cookie
    for k in cookie.keys(): # 判断一下
        if k == "expiry":
            cookie[k] = int(cookie[k]) # expiry参数必须为整型
        driver.add_cookie(cookie)
time.sleep(2)
driver.refresh()
sleep(5)
driver.quit()

注意:

  • 在添加cookie时,需要将expiry对应的值转换为整型,否则会报错。
  • 添加cookie后,需要借助refresh关键字刷新页面
  • cookies存在有效期,之前导出的cookie可能会失效,失效则需要重新导出。

四、封装成函数

为方便后续调用“通过cookie实现免登录”的方法,可以将代码封装成函数:文章来源地址https://www.toymoban.com/news/detail-647488.html

def url_with_cookie(driver, target_url, file):
    cookies_file_path = file
    cookies_file = open(cookies_file_path,"r")
    cookies_str = cookies_file.readline()
    cookies_dict = json.loads(cookies_str)
    time.sleep(2)
    driver.get(target_url)
    driver.delete_all_cookies()
    for cookie in cookies_dict:
        for k in cookie.keys():
            if k =="expiry":
                cookie[k] = int(cookie[k])
            driver.add_cookie(cookie)
    time.sleep(2)
    driver.refresh()

if __name__ == '__main__':
    from selenium import webdriver
    import json
    import time
    from time import sleep

    driver = webdriver.Chrome()
    url_with_cookie(driver,'https://mail.163.com','mycookie.json')
    sleep(5)
    driver.quit()

到了这里,关于【Python】Selenium操作cookie实现免登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 一个完整Python实战项目:selenium识别验证码实现自动登录,自动操作浏览器获取某东数据

    最近都没啥时间,很久没更新了。 今天分享一下,如何用selenium识别验证码,实现自动登录以及获取数据。 目标:某东 话不多说直接开始 环境 Python 3.10 Pycharm 模块使用 import random import time from selenium import webdriver import pyautogui import base64 import ddddocr import csv win + R 输入cmd 输入安

    2024年02月04日
    浏览(22)
  • selenium利用cookies实现自动登录

    原理很简单,首先手动完成登录后,把cookies保存到本地,下次再把cookies注入到浏览器里面,就自动实现了登录 最近在学习写python的自动化脚本,但是发现测试工具打开之后的网页是没有用户自己打开浏览器时记录的cookie,简单来说也就是打开的网站不会自己登录,所以想要简单

    2024年02月11日
    浏览(18)
  • Selenium添加Cookie来实现自动登录

    最近在学习写python的自动化脚本,但是发现测试工具打开之后的网页是没有用户自己打开浏览器时记录的cookie,简单来说也就是打开的网站不会自己登录,所以想要简单的实现下如何用cookie来登录 总的来说分两步 第一步获取你登录的cookie,以csdn为例 然后在控制台你就可以得到一

    2024年02月11日
    浏览(28)
  • Selenium4+Python3 - Iframe、Select控件、交互式弹出框、执行JS、Cookie操作

    iframe识别: 语法: driver.switch_to.frame(‘方式’) 1、常见处理方法三种 index:下标 name:id或name属性的值 webelement:元素 2、通过下标进入 进入第一个iframe: 3、通过id或name属性的值进入 通过id或name属性的值进入指定的iframe: 4、通过iframe元素进入iframe 通过iframe元素进入指定i

    2024年02月04日
    浏览(32)
  • python selenium模拟登录某网站的滑块拖动操作

    参考文章: https://blog.csdn.net/u010945216/article/details/120838385

    2024年02月16日
    浏览(20)
  • python+selenium实现登录

    本文所用项目来源于白月黑羽的白月SMS系统:Bysms 系统安装与运行 | 白月黑羽 仅用于selenium自动化登录案例实现,不做其他性质操作。 如有僭越侵权,麻烦您私信联系删除。 使用python+selenium+pytest实现自动化登录测试案例 不做任何的分层和结合框架,一个步骤一个步骤的实现

    2024年02月13日
    浏览(18)
  • python+selenium绕过滑块验证,实现自动登录

    实现taobao自动化登录,当用webdriver打开淘宝时,滑块验证一直失败,手动滑都会失败。因为淘宝会检测window.navigator.webdriver,控件检测到你是selenium进入,所以就会弹出滑块验证。只需要绕过检测就能实现自动登录 验证了两种方法可以跳过: 第一种是给浏览器加启动参数,开

    2024年02月12日
    浏览(20)
  • Python用selenium实现自动登录和下单的项目实战

    前言 学python对selenium应该不陌生吧 Selenium 是最广泛使用的开源 Web UI(用户界面)自动化测试套件之一。Selenium 支持的语言包括C#,Java,Perl,PHP,Python 和 Ruby。目前,Selenium Web 驱动程序最受 Python 和 C#欢迎。 Selenium 测试脚本可以使用任何支持的编程语言进行编码,并且可以

    2024年01月24日
    浏览(15)
  • (待完善)2023-selenium 实现知乎自动登录(第三方登录/使用cookie自动登录)+指定用户的信息相关搜集(2023.3)

    叠甲:本文写作目的仅为本人学习参考、实现功能为课程实验要求、本文写作过程处于作者对于爬虫技术学习的过程,部分代码编写时水平还不够,出现的错误比较多、部分变量名字又臭又长,水平有限,请各位给我的作业汇报留条活路[拜托],请不要卷我,如果发现有什么

    2023年04月10日
    浏览(25)
  • python selenium如何带cookie访问网站

    要使用Python的Selenium库带有cookie访问网站,你可以按照以下步骤进行操作: 安装Selenium库(如果尚未安装): 导入Selenium库并启动一个浏览器会话(比如Chrome或Firefox): 使用 driver.get() 方法打开要访问的网站: 创建一个Cookie字典,将要添加的cookie信息添加到字典中: 使用

    2024年02月08日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包