首页 > 其他分享 >谈谈selenium中的cookie操作

谈谈selenium中的cookie操作

时间:2023-10-20 13:33:25浏览次数:34  
标签:cookies False get selenium driver 谈谈 cookie music.163

实例演示

以登录网易云音乐为例

分两步走

获取cookies

from selenium import webdriver
from pprint import pprint
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://music.163.com/')
driver.delete_all_cookies()  # 此处只是演示api,可以不写的
input('请扫码登录...')
pprint(driver.get_cookies())

注意,执行效果是打开网站后,会等待用户操作

你要先点击登录

再扫码

然后在控制台即可回车继续执行你的代码pprint(driver.get_cookies())

得到 的结果类似如下,是一个List[dict...]的形式,内容非常长

[{'domain': '.music.163.com',
  'expiry': 1732331299,
  'httpOnly': False,
  'name': 'ntes_kaola_ad',
  'path': '/',
  'sameSite': 'Lax',
  'secure': False,
  'value': '1'},
 {'domain': '.music.163.com',
  'expiry': 1732331299,
  'httpOnly': False,
  'name': 'WNMCID',
  'path': '/',
  'sameSite': 'Strict',
  'secure': False,
  'value': 'knwafe.1697771299228.01.0'},
 ...]

装入cookies

from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://music.163.com/')
all_cookies = [{'domain': '.music.163.com',
  'expiry': 1732331299,
  'httpOnly': False,
  'name': 'ntes_kaola_ad',
  'path': '/',
  'sameSite': 'Lax',
  'secure': False,
  'value': '1'},
 {'domain': '.music.163.com',
  'expiry': 1732331299,
  'httpOnly': False,
  'name': 'WNMCID',
  'path': '/',
  'sameSite': 'Strict',
  'secure': False,
  'value': 'knwafe.1697771299228.01.0'},
 ...(此处省略部分)]
for cookie in all_cookies:
     driver.add_cookie(cookie)

sleep(2)
driver.get('https://music.163.com/')

值得注意的是

  1. 你在代码中打开了2次网站,第一次是没有登录的状态,cookies装入后就显示为登录了
  2. cookies具有时效性,过了自然就不可以登录了

cookie相关操作

方法 说明
add_cookie(self,cookie_dict) 添加某个cookie,dict形式
delete_all_cookies(self) 删除所有的cookie
delete_cookie(self,name) 删除某个cookie
get_cookie(self,name) 获取cookie中某个name的值
get_cookies(self) 获取所有的cookies,List[dict]形式

说在最后

从效果上看,如果是登录更推荐用options结合user-data去绕过,cookies多少有点勉强

标签:cookies,False,get,selenium,driver,谈谈,cookie,music.163
From: https://www.cnblogs.com/wuxianfeng023/p/17776861.html

相关文章

  • Python3+selenium3+Firefox 设置浏览器headless模式运行+下载文件
    设置Firefoxheadless模式   defsetUp(self):#Firefoxheadless模式运行options=webdriver.FirefoxOptions()options.add_argument('-headless')self.driver=webdriver.Firefox(options=options)self.driver.implicitly_wait(30)......
  • selenium设置火狐浏览器为headless(无头模式)
    selenium已经停止了对PhantomJS的支持,只能调用Firefox或者Chrome浏览的无头模式(即没有浏览器界面)。使用步骤:安装Firefox浏览器firefox历年版本安装包的官方镜像地址:https://download-installer.cdn.mozilla.net/pub/firefox/releases/安装geckodriver驱动(1)下载geckodriver火狐所......
  • 谈谈selenium4.0中的相对定位
    相对定位历史2021-10-13发布的selenium4.0开始引入,selenium3.X是没有的implementrelativelocatorforfind_element(#9902)4.10维护了下Improvenearrelativelocatorbehavior(#11290)其他都是文档、异常信息方面的处理实例演示D:\selenium\demo\relative......
  • java项目实践-cookie-session-day18
    目录1.cookie2.session3.servletcontext4.servletConfig1.cookiecookie在客户端(浏览器)中保持http状态的信息技术本质是浏览器缓存每次发请求的时候在请求头中带给服务端常见的应用场景:实现7天免登录浏览器F12request.setCharacterEncoding("utf-8");......
  • 【自动化测试】 搭建 robot + selenium + appium 自动化测试环境
    安装Python1、安装Python2.7.13https://www.python.org/downloads/安装完后,需要设置环境变量:计算机—属性—高级系统设置—环境变量—系统变量—Path,写入D:\Python27;D:\Python27\Scripts(更改为您指定路径即可)。2、安装Python的SetupToolshttp://pypi.python.org/packages/2......
  • selenium 处理iframe
    iframe是HTML标签,作用是文档中的文档,或者浮动的框架(FRAME)。iframe元素会创建包含另外一个文档的内联框架(即行内框架),作用就是嵌套网页。以XXX邮箱账号或手机号码输入框为例,我们先按正常定位方法试下能否定位成功。代码如下:报错信息如下:Traceback(mostrecentcalllast):............
  • 彻底搞定Cookie、Session、Token的区别
    Cookie、Session、Token是Web开发中经常涉及到的三种概念。之前我们通过《用户隐私是如何通过Cookie泄漏的》一文,了解了Cookie的起源、作用以及如何被互联网大厂们滥用而失控的。那么,Session和Token又是啥呢?它们与Cookie的区别又是啥呢?这里DD给大家找了一个不错的讲解视频,该视频结......
  • laravle cookie
    Laravel是一个流行的PHP框架,提供了方便的缓存功能来加速应用程序。有时候我们需要更改缓存值,本文将介绍如何在Laravel中更改缓存值。一、了解Laravel缓存在Laravel中,我们使用Cache类来操作缓存。Laravel支持多种缓存驱动,包括文件缓存、数据库缓存、Redis缓存等。......
  • Chrome浏览器复制Cookie的方法
    打开需要复制的页面,按F12打开开发者工具,如图操作  ......
  • selenium 版本4爬取淘宝商品信息
    fromseleniumimportwebdriverfromselenium.webdriver.chrome.serviceimportServicefromselenium.webdriver.common.byimportByfromselenium.webdriver.common.keysimportKeysfromtimeimportsleep#访问淘宝页面path=Service('C:\Python38\chromedrive......