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

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

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

一、滑动验证破解思路

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

  1. 获取滑块滑动的距离

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

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

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

二、案例讲解

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

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

  2. 输入账号密码

  3. 点击登录

  4. 模拟滑动验证

三、代码实现

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

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

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

滑动滑块进行验证

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

相关推荐
深蓝电商API3 分钟前
Selenium 动作链 ActionChains 高级用法
爬虫·python·selenium
喵手11 分钟前
Python爬虫零基础入门【第八章:项目实战演练·第2节】项目 2:信息聚合站 Demo(列表+详情+增量+质量报告)!
爬虫·python·爬虫实战·python爬虫工程化实战·零基础python爬虫教学·爬虫项目演练·信息聚合站
翱翔的苍鹰13 分钟前
多Agent智能体系统设计思路
java·python·深度学习·神经网络·机器学习·tensorflow
小北方城市网21 分钟前
Spring Cloud Gateway 全链路监控与故障自愈实战
spring boot·python·rabbitmq·java-rabbitmq·数据库架构
weixin_4407305024 分钟前
04python编程笔记-04函数+05面向对象
笔记·python
weixin_4624462326 分钟前
用 Python 自动生成双面打印英语单词闪卡(Flashcards)PDF
python·pdf·记忆卡
wqwqweee29 分钟前
Flutter for OpenHarmony 看书管理记录App实战:关于我们实现
android·javascript·python·flutter·harmonyos
东边的小山38 分钟前
python 图形界面多个WORD按名字排序合并成一个WORD
python·c#·word
我的xiaodoujiao38 分钟前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 44--Pytest框架钩子函数
python·学习·测试工具·pytest
喵手44 分钟前
Python爬虫零基础入门【第九章:实战项目教学·第5节】SQLite 入库实战:唯一键 + Upsert(幂等写入)!
爬虫·python·sqlite·爬虫实战·python爬虫工程化实战·零基础python爬虫教学·sqlite入库实战