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 格式会存在区别
- 获取的cookies

- 使用的cookies

- 解决方案
需要重新手动组装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一起探索测试之道。

相关文章:
selenium处理cookie问题实战
1. cookie获取不完整 需要进入的资损平台(web)首页,才会出现有效的ctoken等信息 1.1. 原因说明 未进入指定页面而获取的 cookie 与进入页面后获取的 cookie 可能会有一些差异,这取决于网站的具体实现和 cookie 的设置方式。 通常情况下,一些…...
(十五)GLM库对矩阵操作
GLM简单使用 glm是一个开源的对矩阵运算的库,下载地址: https://github.com/g-truc/glm/releases 直接包含其头文件即可使用: #include <glad/glad.h>//glad必须在glfw头文件之前包含 #include <GLFW/glfw3.h> #include <io…...
android中activity与fragment之间的各种跳转
我们以音乐播放、视频播放、用户注册与登录为例【Musicfragment(音乐列表页)、Videofragment(视频列表页)、MusicAvtivity(音乐详情页)、VideoFragment(视频详情页)、LoginActivity&…...
动态规划算法-以中学排课管理系统为例
1.动态规划算法介绍 1.算法思路 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若…...
本安防爆手机:危险环境下的安全通信解决方案
在石油化工、煤矿、天然气等危险环境中,通信安全是保障工作人员生命安全和生产顺利进行的关键。防爆智能手机作为专为这些环境设计的通信工具,提供了全方位的安全通信解决方案。 防爆设计与材料: 防爆智能手机采用特殊的防爆结构和材料&…...
算法学习笔记(8)-动态规划基础篇
目录 基础内容: 动态规划: 动态规划理解的问题引入: 解析:(暴力回溯) 代码示例: 暴力搜索: Dfs代码示例:(搜索) 暴力递归产生的递归树&…...
数据库常见问题(持续更新)
数据库常见问题(持续更新) 1、数据库范式? 1NF:不可分割2NF:没有非主属性对候选码存在部分依赖3NF:没有非主属性传递依赖候选码BCNF:消除了主属性对对候选码的传递依赖或部分依赖 2、InnoDB事务的实现? …...
定个小目标之刷LeetCode热题(40)
94. 二叉树的中序遍历 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 直接上代码吧,中序遍历左根右 class Solution {public List<Integer> inorderTraversal(TreeNode root) {List<Integer> res new ArrayList<Integer>(…...
Linux--线程(概念篇)
目录 1.背景知识 再谈地址空间: 关于页表(32bit机器上) 2.线程的概念和Linux中线程的实现 概念部分: 代码部分: 问题: 3.关于线程的有点与缺点 4.进程VS线程 1.背景知识 再谈地址空间:…...
Mojo: 轻量级Perl框架的魔力
在Perl的丰富生态系统中,Mojolicious(简称Mojo)是一个轻量级的实时Web框架,以其极简的API和强大的功能而受到开发者的喜爱。Mojo不仅适用于构建高性能的Web应用,还可以用来编写简单的脚本和命令行工具。本文将带你探索…...
Python 游戏服务器架构优化
优化 Python 游戏服务器的架构涉及多个方面,包括性能、可伸缩性、并发处理和网络通信。下面是一些优化建议: 1、问题背景 在设计 Python 游戏服务器时,如何实现服务器的横向扩展,以利用多核处理器的资源,并确保服务器…...
13 学习总结:指针 · 其一
目录 一、内存和地址 (一)内存 (二)内存单元 (三)地址 (四)拓展:CPU与内存的联系 二、指针变量和地址 (一)创建变量的本质 (二…...
golang 项目打包部署环境变量设置
最近将 golang 项目打包部署在不同环境,总结一下自己的心得体会,供大家参考。 1、首先要明确自己目标服务器的系统类型(例如 windows 或者Linux) ,如果是Linux 还需要注意目标服务器的CPU架构(amd或者arm) 目标服务器的CPU架构可执行命令&…...
【Linux进程】进程优先级 Linux 2.6内核进程的调度
目录 前言 1. 进程优先级 2. 并发 3. Linux kernel 2.6 内核调度队列与调度原理 总结 前言 进程是资源分配的基本单位, 在OS中存在这很多的进程, 那么就必然存在着资源竞争的问题, 操作系统是如何进行资源分配的? 对于多个进程同时运行, 操作系统又是如何调度达到并发呢?…...
Linux中的粘滞位及mysql日期函数
只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写 权限. 为了解决这个不科学的问题, Linux引入了粘滞位的概念. 粘滞位 当一个目录被设置为"粘滞位"(用chmod t),则该目录下的文件只能由 一、超级管理员删除 二、该目录…...
BP神经网络的实践经验
目录 一、BP神经网络基础知识 1.BP神经网络 2.隐含层选取 3.激活函数 4.正向传递 5.反向传播 6.不拟合与过拟合 二、BP神经网络设计流程 1.数据处理 2.网络搭建 3.网络运行过程 三、BP神经网络优缺点与改进方案 1.BP神经网络的优缺点 2.改进方案 一、BP神经网络基…...
PCL 点云FPFH特征描述子
点云FPFH特征描述子 一、概述1.1 FPFH概念1.2 基本原理1.3 PFH和FPFH的区别二、代码实现三、结果示例一、概述 1.1 FPFH概念 快速点特征直方图(FPFH)描述子:计算 PFH 特征的效率其实是十分低的,这样的算法复杂度无法实现实时或接近实时的应用。因此,这篇文章将介绍 PFH 的简…...
基于golang的文章信息抓取
基于golang的文章信息抓取 学习golang爬虫,实现广度爬取,抓取特定的网页地址:测试站点新笔趣阁(https://www.xsbiquge.com/) 主要学习golang的goroutine和channel之间的协作,无限爬取站点小说的地址仅限书目…...
【手撕数据结构】卸甲时/空间复杂度
目录 前言时间复杂度概念⼤O的渐进表⽰法小试牛刀 空间复杂度 前言 要想知道什么是空/时间复杂度,就得知道什么是数据结构。 这得分两层来理解。我们生活中处处存在数据,什么抖音热点上的国际大事,什么懂的都懂的雍正卸甲等等一系列我们用户看得到的&a…...
消防认证-防火窗
一、消防认证 消防认证是指消防产品符合国家相关技术要求和标准,且通过了国家认证认可监督管理委员会审批,获得消防认证资质的认证机构颁发的证书,消防产品具有完好的防火功能,是住房和城乡建设领域验收的重要指标。 二、认证依据…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
「全栈技术解析」推客小程序系统开发:从架构设计到裂变增长的完整解决方案
在移动互联网营销竞争白热化的当下,推客小程序系统凭借其裂变传播、精准营销等特性,成为企业抢占市场的利器。本文将深度解析推客小程序系统开发的核心技术与实现路径,助力开发者打造具有市场竞争力的营销工具。 一、系统核心功能架构&…...
springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...
