Python selenium get_cookies获取cookie不全的解决方案
作者:zhu6201976 发布时间:2021-09-17 07:39:52
标签:selenium,get,cookies,cookie
一、场景
浏览器访问淘宝,再访问天猫,继续访问1688......
此时,浏览器中的cookie是什么状态?
显然,包含上述3个网站的所有cookie
二、此时,若通过selenium get_cookies()方法,能获取到浏览器所有cookie吗?
答案显然是不能的(webdriver安全考虑),此方法只能获取当前请求域名下的所有cookie
故访问天猫或1688会登录失败。
那可以通过什么方式,将浏览器所有cookie获取?
方案一:基于浏览器内核,打造属于自己的浏览器,解除限制
方案二:挂代理,Fiddler,mitmproxy等
方案三:分别请求对应域名,获取所有cookie(推荐,笔者首创)
三、样例代码
lmdd_url = f'{self.root_lmdd_url}/seller/dashboard/plan/order'
self.chrome.get(lmdd_url)
cookie_list = self.chrome.get_cookies()
self.chrome.get(self.root_lmdd_api_url)
cookie_list_api = self.chrome.get_cookies()
cookie_list.extend(cookie_list_api)
self.update_session_cookie(cookie_list)
补充:selenium通过add_cookie()添加cookie
selenium通过add_cookie()添加cookie,再次访问网站时,服务器直接读取浏览器cookie
第一次登陆 手动输入用户名密码
# -*- coding:utf-8 -*-
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
sleep(2)
driver.find_element_by_xpath('//*[@id="u1"]/a[7]').click()
driver.add_cookie({'name':'userName','value':'youname'})
driver.add_cookie({'name':'password','value':'youpassword'})
sleep(30)
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('selenium')
来源:https://blog.csdn.net/zhu6201976/article/details/125665774


猜你喜欢
- import "strconv"strconv 包实现了基本数据类型和其字符串表示的相互转换。string与int类型转
- 魔法方法凡是在类内部定义,以“__开头__结尾”的方法都称之为魔法方法,又称“类的内置方法”, 这些方法会在某些条件成立时触发。经常用到的双
- 本文实例为大家分享了bootstrapTable+ajax加载数据,和refresh更新数据两部分,供大家参考,具体内容如下1.html&l
- 注:本次实验的数据在文章最后面,我已上传至百度网盘一.json模块对数据进行处理 上面三个txt文本是这三个国家疫情爆发相关的数据
- 本文实例讲述了python实现简单温度转换的方法。分享给大家供大家参考。具体分析如下:这是一段简单的python代码,用户转换不同单位的温度
- 本文介绍了随机提取N条记录的例子,通过Sql server与access数据库的代码比较让你更快的掌握。随机提取10条记录的例子:Sql s
- 本文给出一条 SQL 语句用于展示在同一名服务器上,不同的数据库间查询,注意当前连接用户要对两个库都有权限SQL Server 中 SQL
- 刚刚想从数据库中的表EXPERT_DETAILS中检索出修改人Modifier(类型 VARCHAR2(20),可为空)为空的那些记录,因为
- 前言本文主要给大家介绍的是关于python对配置文件.ini增删改查操作的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的
- 分类类型名称长度默认值说明pointer指针 nil array数组 0 slice切片
- 快速入门In [1]: import time# 获取当前时间In [25]: time.strftime("%Y-%m-%d_%
- 于是写测试程序。。。不行 下载最新的ODBC。。。还是不行 通过sql plus查询。。。咦?竟然也查不到。。。 于是,折腾。。。折腾。。。
- 如何开始 C#学习过程中有一集讲的是如何查看类图,看完视频后自己就学习如何在VS 2019中查看类图,但是找了好长时间都没有找到查看类图这
- dssaa 问:求一个如奥运倒计时牌那样显示的倒计时程序突然想到这样的一个小程序,不知道能不能做,比如我要在我的主页上挂一个页面,上面只显示
- 另:@会影响效率如:@mysql_connect() 可以导出错误,但会影响效率。mysql与mysqli的区别:
- Python编写类的时候,每个函数参数第一个参数都是self,一开始我不管它到底是干嘛的,只知道必须要写上。后来对Python渐渐熟悉了一点
- 这是由十几位视觉设计师设计的挂历,每个月份都是不同的风格,就像每个月都有不同温度和心情一样,思维跳跃性很大,可以作为挂历设计参考。当然,如果
- 前言Laravel 队列为不同的后台队列服务提供统一的 API,例如 Beanstalk,Amazon SQS,Redis,甚至其他基于关系
- 本文实例讲述了pymongo实现控制mongodb中数字字段做加法的方法。分享给大家供大家参考。具体分析如下:这个非常实用,比如我们需要给文
- 很实用的过滤重复数据的asp代码,函数如下:<%'**************************************