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…...

消防认证-防火窗
一、消防认证 消防认证是指消防产品符合国家相关技术要求和标准,且通过了国家认证认可监督管理委员会审批,获得消防认证资质的认证机构颁发的证书,消防产品具有完好的防火功能,是住房和城乡建设领域验收的重要指标。 二、认证依据…...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
Docker拉取MySQL后数据库连接失败的解决方案
在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...

沙箱虚拟化技术虚拟机容器之间的关系详解
问题 沙箱、虚拟化、容器三者分开一一介绍的话我知道他们各自都是什么东西,但是如果把三者放在一起,它们之间到底什么关系?又有什么联系呢?我不是很明白!!! 就比如说: 沙箱&#…...

【Post-process】【VBA】ETABS VBA FrameObj.GetNameList and write to EXCEL
ETABS API实战:导出框架元素数据到Excel 在结构工程师的日常工作中,经常需要从ETABS模型中提取框架元素信息进行后续分析。手动复制粘贴不仅耗时,还容易出错。今天我们来用简单的VBA代码实现自动化导出。 🎯 我们要实现什么? 一键点击,就能将ETABS中所有框架元素的基…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

yaml读取写入常见错误 (‘cannot represent an object‘, 117)
错误一:yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因,后面把yaml.safe_dump直接替换成yaml.dump,确实能保存,但出现乱码: 放弃yaml.dump,又切…...