使用Python突破网站验证码限制

之前有小伙伴说,在web自动化的过程中,经常会被登录的验证码给卡住,不知道如何去通过验证码的验证,今天专门给大家来聊聊验证码的问题。

常见的验证码一般分为两类,一类是图文验证码,一类是滑块验证码,今天主要来聊聊滑动验证码如何去识别破解。

一、滑动验证破解思路

关于滑动验证码破解的思路大体上来讲就是以下两个步骤:

  1. 获取滑块滑动的距离

  2. 模拟拖动滑块,通过验证。

看起来是很难,实际一点都不简单。但是获取滑块滑动的距离,大多数小伙伴没有思路,不知道怎么去获取。其实要获取下来也不难,关于这种滑动的验证码,滑块和缺口背景都是分别是一张独立的图片,我们可以把这两张图片,下载下来借助于图像识别的技术,去识别缺口在背景图中的位置,然后减去滑块当前所在位置,就可以得出需要滑动的距离。

这个时候很多小伙伴会想图像识别技术我不会啊,不会没有关系,后面会给到大家一个封装好的滑块识别模块,只要你传入滑块和缺口背景图的元素节点就能计算出滑块的缺口位置。

二、案例讲解

话不多说,我们先来看一个案例,这边用到了一个我自己封装的滑动距离识别的模块slideVerfication,有需要的小伙伴可以文末名片处获取。登录案例实现步骤如下:

  1. 创建一个driver对象,访问qq登录页面

  2. 输入账号密码

  3. 点击登录

  4. 模拟滑动验证

三、代码实现

关于滑动验证码的识别问题就这样解决了,那么接下来给大家来讲讲封装的slideVerfication这个模块的识别原理,其实关于这个模块图像识别,也是借助了第三方的图像处理模块来进行识别的,python中有很多现成的用来处理图片的库,这边我使用的是opencv-python来进行识别的。

slideVerfication模块上面用到的两个方法的部分参考代码如下:

根据传入滑块,和背景的节点,计算滑块的距离该方法只能计算 滑块和背景图都是一张完整图片的场景,如果背景图是通过多张小图拼接起来的背景图,该方法不适用,请使用get_image_slide_distance这个方法

滑动滑块进行验证

好了,今天关于滑动验证码识别就分享到这里了 。

相关推荐
m0_6174939440 分钟前
Python OpenCV 透视变换(Perspective Transform)详解与实战
开发语言·python·opencv
小李不困还能学43 分钟前
PyCharm下载安装与配置教程
ide·python·pycharm
博观而约取厚积而薄发1 小时前
Pytest 从入门到精通,一篇就够(超详细实战教程)
python·测试工具·单元测试·自动化·pytest
imzed1 小时前
使用 Playwright + Pytest 构建 Web UI 自动化测试框架
python·自动化·pytest
普通网友1 小时前
pytest一些常见的插件
开发语言·python·pytest
时空系1 小时前
Python 高性能高压缩打包器 —— 基于 JianPy 语义分析引擎
python
cndes2 小时前
给Miniconda换源,让包下载更迅速
开发语言·python
Metaphor6922 小时前
使用 Python 添加、隐藏和删除 PDF 图层
python·pdf·图层
丨白色风车丨2 小时前
【Python 计算机视觉】基于 Dlib+OpenCV 实现实时人眼疲劳检测(闭眼预警)
python·opencv·计算机视觉