java-插入排序
接下来一步步分析jd的滑块验证码
声明:本文章纯属技术探讨学习
防止不法用途
轨迹代码为旧版本需要自行优化
你在本篇文章可以学习到什么?
- 滑块分析的思路(纯js调用,非selenium)
- java爬虫常用的方法
- java调用js引擎的方法
- 如何分析一个网页,对网页进行调试
首先看一下结果(成功率还是非常的高)
分析正文
爬虫思路
首先说一下我对爬虫的思路。
分析的过程主要是一个控制变量的过程,不断减少影响的因素,这样就能出得出分析的结果
看一下jd登录页面的
有一个请求是只要接触页面就不断发送的
https://seq.jd.com/jseq.html请求
去除这个请求,整个滑块过程一共只有三个请求
分别是
- https://iv.jd.com/slide/g.html
- https://iv.jd.com/slide/s.html
可以看到g请求是用来获取图片的base64编码的。
那s请求就是验证图片验证码的一个请求了。
非常清晰明了。
那问题来了。
jseq请求有用吗?
做什么用?
是不是进行验证的关键请求
当然我也不知道?
但我们可以进行测试
这里就要用到其他的工具进行测试了
相信大家都回有Fiddler这个工具,没有的话青花瓷也可以。
1、打开Fiddler
2、拦截jseq请求
对就是这么简单!
不清楚请求的是否起作用,我们就将它拦截不让他进行请求。
我们发现滑块验证照样通过了。
这样我们减少了一个分析的请求
减少了一个爬虫影响的因素。
就是这样不断减少因素
最后再构造需要构造的请求即可完成一个爬虫
回到正题
g请求我们上篇文章已经有分析过了
我们现在看一下s请求。也就是验证的请求。
首先Get请求
参数在url后面
参数非常多
我们一个个分析
d:做过滑块的应该很容易看出d就是轨迹的加密密文。比较长且是乱码,一般是一个数组分别为 x,y,t 加密的结果
c:我们通过浏览器的全局搜索、是每个验证码的唯一的id(每个验证码不同,用于服务器去识别哪个验证码)
剩下的基本都是可以写死 或者是用户名(o)这些都是可以全局搜索通过分析得出的
我们看一下js的处理
火狐浏览器有一个
堆栈跟踪
点一下请求
第二个就是加密的过程
打个断点分析一下
d加密的果然是一串轨迹,我们后续需要自己构造这一段数组
后面就是简单的扣出js代码 然后放入java引擎执行
后面会上传github代码
本文章纯属技术探讨学习
防止不法用途
轨迹代码为旧版本需要自行优化