python爬虫处理滑块验证_Python 爬虫进阶必备 | 某滑块验证码加密参数逻辑分析...

本文介绍了如何处理一种简单的滑块验证码,通过分析请求和逻辑,理解验证码的工作原理。利用OpenCV进行图片比对,找出缺口位置,从而计算滑动距离,成功模拟验证过程。
摘要由CSDN通过智能技术生成

今日网站

aHR0cHM6Ly9idWxsZXRpbi5jZWJwdWJzZXJ2aWNlLmNvbS8=

这个网站是比较简单的滑块验证码,没有涉及指纹,轨迹以及 JS 的加密,但是有助于进一步了解滑块验证码的具体实现和分析流程

所以作为 Crack Captcha系列的第一篇,希望能对想要学习验证码分析的朋友带来一些帮助

概念普及

在开始我们老三样套路之前先搞一波基础概念普及

Captcha全程是 Completely Automated Public Turing test to tell Computers and Humans Apart

是一种区分用户是机器或人类的公共全自动程序,既然是一种程序,那只要摸清套路我们也可以用全自动化的套路应对。

目前市面上的验证码类型常见的有数字字符验证码,滑动验证码和点选验证码。

具体的形式我这里截取一些常见的形式展示一下,其他形式的大家可以自行搜索。

4c58c7f233926de5c7dc56d00b8fe98c.png

8708728e80570b7b5f333895c0ecad27.png

096420c7fbd09e10b2747678cd1a1d79.png抓包分析

凑完字数,这里看下我们需要分析的网站验证码

打开网站,研究一下可以看到页面需要滑动验证之后才可以出现列表页的内容

a41970e001018fa8e080a39a77e067e7.png清掉缓存,重新抓包,大致分析了一下大致有下面这几个请求是和验证码相关的

1357d00c6d8440061ab10e89f86cf88b.png分别查看请求并分析逻辑可以大致得到下面这些信息

1、captchaimage返回的是上面这个三个图的链接地址

2、19.png是原图

3、big_xxx.png和small_xxx.png是缺口图和滑块图

4、checkCaptcha是验证验证码的请求,并且返回了一个token用于之后列表页的请求

8846ec82c6ffd7e0ed5d26854cfb1aaf.png

c6837f585a128cf4904f1d148ebeaa0c.png这样的大致的逻辑就分析明白了

先请求1得到2、3中的图片,再提交4中需要的参数得到返回的token即可完成列表页的请求

那么4中的请求提交的又是什么呢?

0132539c627f36fb3563247a5379c60d.png4中需要的参数有两个,第一个是dataToken、第二个是point,这样就很清晰了。

dataToken来自1的请求

point应该就是图片滑块的距离了

这样分析下来就很清楚了,而且这个滑块也非常简单,2,3中的图片没有混淆,也没有滑动轨迹的验证,只要简单的完成参数提交即可。

代码逻辑

先构造请求这个很简单

主要是提取两个链接,原图和缺口图

之后用opencv比对获取缺口离左侧的距离

2238d49f698d458268c38eabfc55e4db.png

def pixel_is_equal(image1, image2, x, y):

"""

判断两张图片的像素是否相等,不想等即为缺口位置

:param image1:

:param image2:

:param x:  x坐标

:param y: y 坐标

:return:

"""

# 取两个图片的像素点

pixel1 = image1.load()[x, y]

pixel2 = image2.load()[x, y]

threshold = 60  # 像素色差

if abs(pixel1[0] - pixel2[0]) 

pixel1[2] - pixel2[2]) 

return True

else:

return False

带上这个比对的结果获取左侧到这个位置的距离就可以了。

PwaKwC8Cv2TsBQMFAwUDBQMFAwUDBQMFA20IA0Xgt6HJLBnxz58RFxsXGxcMFAwUDBQMFAwUDPzSMVAEfhH4JWMvGCgYKBgoGCgYKBgoGCgYaEMY+F+H5dFYt2mvUwAAAABJRU5ErkJggg==今天的文章到这里就结束了,最简单的滑块分析结束,我们下次再见~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值