某二手车逆向研究,竟然如此……

news/2024/7/19 10:58:32 标签: python, 爬虫, 逆向

目录

    • 一、逆向目标
    • 二、网站分析
    • 三、加密参数分析
    • 四、加密数据分析
    • 五、思路总结
    • 六、完整项目下载
    • 七、作者Info

一、逆向目标

通过抓包技术找出请求头的加密参数,当然也包括cookie,以及响应数据中的加密过的或编码过的数据,通过xhr/fetch请求定位到具体的接口,再通过全局搜索或断点调试找出JS中的一些逻辑,不行再进行hooks、js重写、自动化模拟等方式,最终的目标是能够稳定、快速、完整的抓取到我们所需的数据

二、网站分析

分析某二手车的网页数据,发现我们要抓取的数据字段还是比较多的,一旦该网站的网页元素及其位置发生改变,维护起来就比较麻烦,所以我们通过xhr定位到接口:
在这里插入图片描述

三、加密参数分析

通过接口的请求头参数,我们大致可看出有一些参数可能是比较重要的,比如client-time、verify-token、szlm-id等参数,我们全局搜索一下verify-token:
在这里插入图片描述

并进行断点调试,刷新一下:
在这里插入图片描述

verify-token的值为44646d6aa72bc4733ceabefe0e952271,如果我们再刷新一次,发现verify-token的值又一次变化了,是不是需要我们找出其JS构造逻辑呢?并不需要,当我们不知道某些参数是否有用时,可以使用一些调试工具如postman等对其接口的请求头参数进行调试

经过验证,verify-token虽然是动态变化的,但不影响返回的数据,访问也不会被禁止,故该参数可被舍弃,其他的请求头参数也是相同的调试验证流程…………

四、加密数据分析

查看其响应response数据,格式化一下:
在这里插入图片描述

可轻易看出数字是经过编码处理过的,我们只需与页面中的数字对照起来看就行:
在这里插入图片描述

python">数字5就是
数字4就是

五、思路总结

此次实战中可看出,其实很多请求头参数都是没用的,即使是加密动态变化的参数也是如此,我们可通过调式工具去判断其是否有用,绕过一些东西,从而帮助我们快速抓取数据,提高爬虫效率

六、完整项目下载

点我下载完整项目

项目包括以下内容:
经过逆向研究,使用xmind编写的部分思维导图如下:
在这里插入图片描述

项目结构:
在这里插入图片描述
其中有xmind的软件包,可用xmind.exe打开思维导图查看逆向流程


测试前9页爬取效果:
在这里插入图片描述

查看Excel数据:
在这里插入图片描述


七、作者Info

Author:小鸿的摸鱼日常,Goal:让编程更有趣!

专注于算法、爬虫,游戏开发,数据分析、自然语言处理,AI等,期待你的关注,让我们一起成长、一起Coding!

版权说明:本文禁止抄袭、转载 ,侵权必究!


http://www.niftyadmin.cn/n/376375.html

相关文章

vue2中key的原理

vue2中key的原理 在Vue.js 2中,key属性用于辨识和跟踪在使用v-for指令时渲染的DOM元素的身份。它在Vue的虚拟DOM算法中起着重要的作用。 当使用v-for指令循环渲染一个数据列表时,Vue会生成一组DOM元素来表示每个列表项。为了优化性能和提高渲染效率&am…

跨端框架+小程序容器:一种让App开发提高效率的思路

WePY(微信小程序开发框架)是一个基于组件化开发思想的微信小程序开发框架。它类似于Vue.js框架,通过封装小程序原生的API,提供了更加简洁、高效的开发方式。 WePY的主要特点包括: 组件化开发:WePY将页面拆…

k8s架构设计之存储设计

当我们使用k8s创建服务的时候,需要使用磁盘进行存储。k8s作为分布式系统,是怎样进行进行存储管理的呢?实际上k8s的存储方案分为两种:一.静态存储 二.动态存储 为了方便,本文主要以nfs来讲解 一.静态存储 当我们一个服务使用固定的存储空间的时候,可以通过创建存储卷pv,…

Java阶段三Day06

Java阶段三Day06 文章目录 Java阶段三Day06同步请求和异步请求案例演示创建SpringBoot工程application.propertiesUserControllerUserMapper静态页面 JSONSpring Security引入SpringSecurity框架对项目的影响关于SpringSecurity的配置默认登录表单设置白名单模拟登录使用自己的…

Redis自学之路—分布式锁(四)

目录 分布式锁定义 靠谱的分布式锁具备的特征 【互斥性】 【锁超时释放】 【可重入性】 【高性能和高可用】 【安全性】 Redis分布式锁方案 一、SETNX EXPIRE 二、SETNX value值是(系统时间过期时间) 三、使用Lua脚本(包含SETNXE…

四段论提问让ChatGPT更懂你心!

用户故事是描述客户需求的方法,通常记为四段论的格式: 角色-功能-目的-验收标准。 如: 作为一个家庭主妇,我需要一个30平方米的餐厅,用以招待10位客人聚餐。 我希望这个餐厅&…

【css】自定义鼠标光标指针样式-前端

本文功能介绍:自定义、定制鼠标光标指针样式! cursor: url(), auto; 除了浏览器提供的鼠标样式,我们还可以借助 cursor: url() 的特性,即可实现定制自己的鼠标样式! /* 使用 URL,并提供一个关键字值作为备用…

【Mysql】| 超详细常见bug及解决方案

目录 一. 🌟 引入话题二. 🌟 引出bug1.1 查看bug1.2 Problem Solving2.1 查看bug2.2 Problem Solving3.1 字段长度异常3.2 Problem Solving 三. 🌟 最后 一. 🌟 引入话题 MySQL是一款广泛使用的开源数据库管理系统,它…