selenium处理cookie问题实战

1. cookie获取不完整

需要进入的资损平台(web)首页,才会出现有效的ctoken等信息

1.1. 原因说明

未进入指定页面而获取的 cookie 与进入页面后获取的 cookie 可能会有一些差异,这取决于网站的具体实现和 cookie 的设置方式。

通常情况下,一些网站会在用户进入页面后生成一些特定的 cookie,这些 cookie 可能包含用户会话信息、跟踪信息等。因此,未进入指定页面时获取的 cookie 可能不包含这些信息。

另一方面,有些网站的 cookie 是在用户访问任意页面时就会生成并存储在浏览器中的。在这种情况下,未进入指定页面时获取的 cookie 与进入页面后获取的 cookie 可能没有太大差异。

总的来说,获取的 cookie 是否有差异取决于网站的具体实现和 cookie 的使用方式。如果您需要精确获取特定页面生成的 cookie 信息,最好在访问该页面后再获取 cookie,以确保获取到完整的信息

2. cookie数据解析异常

原始数据:

[{'domain': '.antdigital.com', 'httpOnly': False, 'name': 'ctoken', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': 'bigfish_ctoken_1965hjgh1k'}, {'domain': '.antdigital.com', 'httpOnly': False, 'name': 'authorization', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': 'hmac%200144145205-2%3AYjgzT1VyM0xMR1FIeEU1cHFXZjVhbGVFeWVkbE92blY%3D~0'}, {'domain': '.antdigital.com', 'expiry': 1748313361, 'httpOnly': True, 'name': 'receive-cookie-deprecation', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': '1'}, {'domain': '.antdigital.com', 'httpOnly': False, 'name': 'ALIPAYJSESSIONID', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': 'a4dgrBlrGO2LycGAp9ISLbKlhltzDJp8ternbase'}, {'domain': 'console.sofa.antdigital.com', 'expiry': 1716779163, 'httpOnly': True, 'name': 'acw_tc', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': '2f61f26f17167773639898915e1415a864af5bda3a434801717cf15188cbe4'}, {'domain': '.antdigital.com', 'expiry': 1732502161, 'httpOnly': False, 'name': 'UM_distinctid', 'path': '/', 'sameSite': 'Lax', 'secure': False, 'value': '18fb7e7a1737e8-03debf79208018-26001c51-1fa400-18fb7e7a1747d6'}, {'domain': '.antdigital.com', 'httpOnly': False, 'name': '_CHIPS-ALIPAYJSESSIONID', 'path': '/', 'sameSite': 'None', 'secure': True, 'value': 'a4dgrBlrGO2LycGAp9ISLbKlhltzDJp8ternbase'}]

2.1. json库解析异常

data_list = json.loads(cookie)

    def get_token(self):# 获取ctokenwith open("cookie.txt", "r", encoding="utf8") as file:# 读取数据cookie = file.read()print(f"cookie的数据类型为:{type(cookie)}")print(f"cookie的数据为:{cookie}")# 添加双引号修复属性名cookie = cookie.replace("'", "\"")# 将字符串转换为字典列表data_list = json.loads(cookie)

错误日志:

File "D:\Program Files\Python12\Lib\json\decoder.py", line 355, in raw_decoderaise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 44 (char 43)

2.2. 解决方案

data_list = ast.literal_eval(cookie)

说明:

使用 `ast.literal_eval()` 解析给定的字符串数据。如果数据格式符合 Python 表达式的规则,`ast.literal_eval()` 将能够成功解析字符串并转换为对应的数据结构

3. 使用cookie异常

获取的 cookies 与 实际要使用的 cookies 格式会存在区别

  1. 获取的cookies

  1. 使用的cookies

  1. 解决方案

需要重新手动组装cookies:

从 `driver.get_cookies()` 获取到的 cookies 转换为请求头(headers)中的 cookie 格式,你需要将每个 cookie 对象中的 `'name'` 和 `'value'` 键值对转换为符合请求头中 cookie 格式的形式

# 将 cookies 转换为请求头中的 cookie 格式
cookie_str = "; ".join([f"{cookie['name']}={cookie['value']}" for cookie in cookies])

获取数据:

ctoken=bigfish_ctoken_1966236jjg; authorization=hmac%200144145205-2%3AWUttZTlldlNZT2prMU8wUDRJNGVqWkd1NVh3QTA1RGs%3D~0; receive-cookie-deprecation=1; ALIPAYJSESSIONID=BqeDLcccF1d50BvqmzG8KZ2D2Kwaxdg0ternbase; acw_tc=0a47329a17168095857613765e004ac76293e2b2a9afc04ba5901f2ca7fd41; UM_distinctid=18fb9d349b9135-0b5e7625d4afa6-26001c51-1fa400-18fb9d349bad4; _CHIPS-ALIPAYJSESSIONID=BqeDLcccF1d50BvqmzG8KZ2D2Kwaxdg0ternbase

欢迎关注公众号,与Joker一起探索测试之道。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1475280.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

镜舟科技:国产数据库角逐金融赛道,开年斩获数家银行订单

在国产数据库领域,镜舟科技正迅速崛起,成为一匹瞩目的基础数据技术黑马。 开年伊始,镜舟科技便成功斩获中信银行、南京银行、某股份制银行、某头部民营银行、某大型综合类券商以及某消费金融公司等多家金融企业订单,其锚定需求匹…

C++ | Leetcode C++题解之第216题组合总和III

题目&#xff1a; 题解&#xff1a; class Solution { private:vector<vector<int>> res;void backtracking(int k, int n, vector<int> ans){if(k 0 || n < 0){if(k 0 && n 0){res.emplace_back(ans);}return;}int start (ans.size() 0 ?…

30万的剧本杀店 被“好色”店长玩死了

文&#xff5c;琥珀食酒社 作者 | 朱珀 对开店搞钱的人来讲 什么才是最苦逼的&#xff1f; 不是一开始生意就不行 而是刚开始好到不行 最后只剩下不行 本期投稿的主人公糊糊 就是这样的 苦逼大BOSS 30万开剧本杀店 短短几个月 从巅峰跌到谷底 被捞钱又好色的猪队友…

代码随想录算法训练营第67天:图论5[1]

代码随想录算法训练营第67天&#xff1a;图论5 ‍ 105.有向图的完全可达性 卡码网题目链接&#xff08;ACM模式&#xff09;(opens new window) 【题目描述】 给定一个有向图&#xff0c;包含 N 个节点&#xff0c;节点编号分别为 1&#xff0c;2&#xff0c;…&#xff0…

ICC2:ignore pin的设置

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球入口 相关文章链接:

项目:简易Mybatis

目录 一、新建项目 二、新建模块 三、回顾JDBC 四、准备环境 五、使用dom4j解析xml文件 六、开始,编写Mapper解析API 1、自定义Resources类 2、定义Configuration类 3、定义MappedStatement类 4、定义XmlMapperBuilder类 5、更新一下UserMapper.xml和UserMapper接口 …

Redis基础教程(十六):Redis Stream

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

读书记录《SQL从小白到大牛》01

读书记录《SQL从小白到大牛》01 接地气的书名&#xff0c;内容应当值得一读。 第一篇 SQL基础 01 一些基础概念 SQL是结构化查询语言&#xff08;Structured Query Language&#xff09;&#xff0c;是一套用来输入、更改和查看关系数据库内容的命令。数据库发展经历三个阶…

SMA 内孔 弯头——KH-SMA-K513-G

品  牌&#xff1a; kinghelm(金航标) 厂家型号&#xff1a; KH-SMA-K513-G 封装&#xff1a; 插件 商品毛重&#xff1a; 2.86克(g) 包装方式&#xff1a; 袋装

使用Mybatis批量插入大量数据的实践

前言 在项目开发过程中&#xff0c;我们经常会有批量插入的需求&#xff0c;例如&#xff1a;定时统计任务 但是受限于MySQL中 max_allowed_packet 参数限制&#xff0c;5.7版本默认值为4M&#xff0c;这显然不太符合我们的需求&#xff0c;当然我们也可以通过修改此值来适应…

【Unity几种数据存储之间的区别】PlayerPrefs、Json、XML、二进制、SQLite数据存储之间的优缺点以及如何选择

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 专栏交流&#x1f9e7;&…

Meta关于深度学习推荐系统的Scaling Law的研究

作者 | 番茄爱鸡蛋 整理 | NewBeeNLP https://zhuanlan.zhihu.com/p/688913185 大家好&#xff0c;这里是 NewBeeNLP。今天看看 Meta 关于深度学习推荐系统 Scaling Law 的研究。 零、论文信息 论文题目&#xff1a;Wukong: Towards a Scaling Law for Large-Scale Recommend…

更好的预测方法:使用前后控制图

我已经写了很多关于阶段控制图的文章&#xff0c;因为我认为它们是一个非常好的可视化工具。它们有许多用途而且很容易创建。除了有助于分析改进或变更前后的流程之外&#xff0c;它们还是更准确预测或预报的重要第一步。 不同的预测方式或用不同的方法预测 有很多不同的方法…

硅纪元视角 | Speak火了!3个月收入翻倍,OpenAI为何频频下注?

在数字化浪潮的推动下&#xff0c;人工智能&#xff08;AI&#xff09;正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展&#xff0c;捕捉行业动态&#xff1b;提供深入的新闻解读&#xff0c;助您洞悉技术背后的逻辑&#xff1b;汇聚行业专家的见解&#xff0c;…

信息技术课堂上如何有效防止学生玩游戏?

防止学生在信息技术课堂上玩游戏需要综合运用教育策略和技术手段。以下是一些有效的措施&#xff0c;可以用来阻止或减少学生在课堂上玩游戏的行为&#xff1a; 1. 明确课堂规则 在课程开始之初&#xff0c;向学生清楚地说明课堂纪律&#xff0c;强调不得在上课时间玩游戏。 制…

【十八】【QT开发应用】标签页QTabWidget的常见用法

#include "widget.h" // 包含自定义的widget头文件 #include <QHBoxLayout> // 包含QHBoxLayout头文件&#xff0c;用于水平布局 #include <QTabWidget> // 包含QTabWidget头文件&#xff0c;用于创建标签页控件 #include <QDebug> // 包含QDebug头…

医院人员管理项目01_下午,css

文章目录 层叠样式表在html文件中引入css样式表&#xff1a;2种方法如何设置样式&#xff1a;3种css选择器继承权重 层叠样式表 引入html网页中的方式&#xff0c;共3种。 行内样式&#xff08;内联样式&#xff09;&#xff1a;直接在html中设置 内部样式&#xff1a;css代…

学诚教育在线管理系统-计算机毕业设计源码98076

目 录 摘要 1 绪论 1.1 选题背景与意义 1.2开发现状 1.3论文结构与章节安排 2 开发环境及相关技术介绍 2.1 MySQL数据库 2.2 Tomcat服务器 2.3 Java语言 2.4 Spring Cloud框架介绍 3 教育在线管理系统系统分析 3.1 可行性分析 3.1.1 技术可行性分析 3.1.2 经济可…

【Proteus仿真】基于Stm32的八路抢答器~

【Proteus仿真】基于Stm32的八路抢答器~ 文档资料在购买后即可获得&#xff08;如有问题可通过微信公号或b站私信联系我&#xff09; 资料包括&#xff1a; 1. Proteus仿真源文件2. keil源代码功能描述: 1. 抢答时间设置显示2. 选手得分用时显示3. 选手数据查询/清楚4.抢答…

Java | Leetcode Java题解之第213题打家劫舍II

题目&#xff1a; 题解&#xff1a; class Solution {public int rob(int[] nums) {int length nums.length;if (length 1) {return nums[0];} else if (length 2) {return Math.max(nums[0], nums[1]);}return Math.max(robRange(nums, 0, length - 2), robRange(nums, 1,…