当前位置: 首页 > news >正文

【爬虫逆向案例】某名片网站 js 逆向 —— data解密

声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!

【爬虫逆向案例】某名片网站js逆向—— data解密

  • 1、前言
  • 2、步骤
  • 3、号外

1、前言

相信各位小伙伴在写爬虫的时候经常会遇到这样的情况抓取动态数据的时候 data 是一串加密数据,如下图所示:

在这里插入图片描述
接下来我们尝试解决一下这样的情况,本期咱们采集的是某名片网站

2、步骤

我们可以看到数据的存储格式都是字符,那我们先全局搜索 encrypt_data

在这里插入图片描述

进入到搜索出来的 js 文件中以后,再次全局搜索(注意:这里有一个小技巧,遇到这种data加密的数据,就全局搜索 JSON.parse ,省去我们慢慢调试 js 的时间,搜索以后会找到对应加密的函数

在这里插入图片描述

打上断点刷新页面或者切换网页中的下一页即可,断点断住以后我们可以发现 e 就是我们想要的东西

在这里插入图片描述
在这里插入图片描述
接下来,先将 这个function s(e)主函数复制出来,并且进行一些小的改写 因为 a.a 是可以不需要的

在这里插入图片描述

接下来 看里面return的函数结构,发现 a.a.decode 就是对e进行加密的函数,然后最外层就是o函数对整个进行处理,那么我们先选中 a.a.decode 进入这个函数的结构

在这里插入图片描述
在这里插入图片描述
那么我们需要将这个 function(t) 整个复制出来,复制到我们的 Pycharm 里面,并补充完整

在这里插入图片描述
接下来,我们就是需要将最外层的 o 函数找到,并且复制出来,和查找 decode 的方法一样

在这里插入图片描述
在这里插入图片描述
还是一样复制过来,怕复制错的话,可以把该 js 文件下载到本地,用 Pycharm 打开格式化一下,把需要的函数复制出来就行了。

在这里插入图片描述
到这个时候,我们的 js 文件大概是这样的,如下图所示:

在这里插入图片描述
我们可以先拿个数据测试一下,尝试运行一次,我们会发现报错了,

在这里插入图片描述
由图可见,var e = (t = String(t).replace(f, "")).length; 中使用的 f 未定义,我们返回 decode 的 js 文件中找找,肯定在那里面。

往上翻看看,f 立马就出来了

在这里插入图片描述
写入 f 后重新运行一遍,好家伙,又报错了,如下图所示:

在这里插入图片描述
这次是 l 没有找到,刚才咱们回去 js 找 f 的上边刚好就是 l ,刚好复制下去,重新运行一下,这数据不就出来了

在这里插入图片描述
后续有需求可以自己封装一下,请求回来数据解析入库。

3、号外

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “👍点赞” “✍️评论” “💙收藏” 一键三连哦!
【👇🏻👇🏻👇🏻关注我| 获取更多源码 | 定制源码】大学生毕设模板、期末大作业模板 、Echarts大数据可视化等! 「一起探讨 ,互相学习」!(vx:python812146)
以上内容技术相关问题😈欢迎一起交流学习👇🏻👇🏻👇🏻🔥

http://www.lryc.cn/news/96670.html

相关文章:

  • RocketMq 事务消息原理
  • day41-Verify Account Ui(短信验证码小格子输入效果)
  • C. Maximum Set
  • 基于springboot+vue学生宿舍报修公寓管理系统
  • 缓存和数据库一致性问题分析
  • 用Rust生成Ant-Design Table Columns | 京东云技术团队
  • java.lang.ClassNotFoundException: sun.misc.BASE64Decoder
  • Unity进阶--对象池数据场景管理器笔记
  • 【Seata】微服务集成seata
  • 解决react,<img>src使用require方法引入图片不显示问题
  • 从小白到大神之路之学习运维第67天-------Tomcat应用服务 WEB服务
  • 图解SQL基础知识,小白也能看懂的SQL文章
  • 自动驾驶感知系统-毫米波雷达
  • Esp32_Arduino接入腾讯云笔记
  • python简单入门
  • 如何快速从csv文件搭建一个简单的神经网络模型(回归)
  • Pytorch深度学习-----DataLoader的用法
  • macOS Ventura 13.5 (22G74) Boot ISO 原版可引导镜像下载
  • 【机器学习】 奇异值分解 (SVD) 和主成分分析 (PCA)
  • 如何用logging记录python实验结果?
  • C语言假期作业 DAY 03
  • 使用serverless实现从oss下载文件并压缩
  • 从上到下打印二叉树
  • 【推荐】排序模型的调优
  • 负载均衡安装配置详解
  • Java-逻辑控制
  • UE 透明渲染次序
  • 【C++】多态原理剖析,Visual Studio开发人员工具使用查看类结构cl /d1 reportSingleClassLayout
  • vue实现flv格式视频播放
  • iptables安全技术和防火墙