Python 爬虫进阶必备 | 某指数分析平台解密逻辑分析
时间:2022-07-25
本文章向大家介绍Python 爬虫进阶必备 | 某指数分析平台解密逻辑分析,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
今日网站
aHR0cCUzQS8vemhpc2h1LmJhaWR1LmNvbS92Mi9tYWluL2luZGV4Lmh0bWwlMjMvdHJlbmQvJTI1RTglMjU4NSUyNUJFJTI1RTglMjVBRSUyNUFGJTNGd29yZHMlM0QlMjVFOCUyNTg1JTI1QkUlMjVFOCUyNUFFJTI1QUY=
前面写了多篇文章是关于加密参数加密的,今天写一篇关于返回值解密的文章,供各位大佬参考
抓包分析与加密定位
先来看看需要分析的结果,可以看到页面是存在时间轴与指数值两个值的,我们现在就是要抓取这个指数轴的值
经过简单分析,看到下面这个请求有一串的data
值是以密文的形式返回的,我们大胆猜测这就是加密的返回结果,页面一定存在解密的逻辑来解密这段data
可以看到这个加密的结果是有 3 段,分别是pc
、all
与wise
,这里解密的逻辑用的应该是同一个,所以我们只要分析一个出来就行了。
分别搜索data
、pc
、wise
等关键次都没有找到加密的逻辑,xhr
断点也试了,也没有找解密的逻辑。
通过参考之前写过的
稀牛数据
的文章还有我在之前写过的一些基础文章中提到的可以通过检索加解密
的关键词来定位的思路
突然想到还有解密的关键词decrypt
可以再试试
果不其然,让我找到了下面这些结果
我追进去打上断点,果然就是我们需要的逻辑(希望所有的前端工程师都能写好注释)
也可以通过堆栈找到上一层逻辑来确认
加密逻辑分析
这个逻辑很清楚,我们直接复制出来看看能不能解密
完事,这个逻辑非常简单
这个逻辑也可以复写成Python
版本
def decrypt_data(password, data):
n = list(password)
i = list(data)
a = {}
result = []
ln = int(len(n) / 2)
start = n[ln:]
end = n[:ln]
for j, k in zip(start, end):
a.update({k: j})
for j in data:
result.append(a.get(j))
return ''.join(result)
以上就是今天的全部内容了,咱们下次再会~
[ 完 ]
- 由索引节点(inode)爆满引发的问题
- As3.0中的位图(Bitmap/BitmapData)编程
- Mesos+Zookeeper+Marathon的Docker管理平台部署记录(2)--负载均衡marathon-lb
- Docker集群管理工具-Kubernetes部署记录
- AS3:小游戏“贪吃蛇”的实现
- 超实用的8个Linux命令行性能监测工具
- 用javascript替换URL中的参数值
- Gitblit版本服务器环境部署记录
- HDK扩展自定义VEX函数print
- AsyncTask和Handler对比
- sql初始化XML操作
- 给你一根杠杆,撬起万亿的小程序红利市场!
- Flash/Flex学习笔记(43):动量守恒与能量守恒
- Flash/Flex学习笔记(57):实用技巧
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 图文详解Ubuntu搭建Ftp服务器的方法(包成功)
- Linux中chown与chmod两个命令的区别详解
- 解决navicat连接不上linux服务器上的mysql问题
- 增强Linux和Unix服务器安全性的方法详解
- ubuntu下没有中文输入法的解决办法
- linux查看端口是否开放的方法总结
- Linux下删除乱码或特殊字符文件的方法讲解
- Ubuntu Server下无线网卡的配置详解
- Linux中修改mysql默认编码的方法步骤
- ubuntu16.04搭建nfs服务的方法
- Ubuntu16.04搭建php5.6Web服务器环境
- Linux上通过SSH挂载远程文件系统方法详解
- Linux上创建、列出、删除Docker容器方法总结
- Centos 7.4服务器时间同步配置方法【基于NTP服务】
- PowerBI 通用万能日历模板,想干嘛就干嘛