当前位置: 首页 > news >正文

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

图片

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

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

图片

一、滑动验证破解思路

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

  1. 获取滑块滑动的距离

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

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

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

二、案例讲解

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

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

  2. 输入账号密码

  3. 点击登录

  4. 模拟滑动验证

三、代码实现

图片

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

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

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

滑动滑块进行验证

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

相关文章:

  • 堆排序的实现
  • 1.3Java对象和类
  • Keras 3.0强势回归,助力深度学习
  • 校园安保巡逻机器人
  • C语言| 输出*三角形
  • python上位机串行通信接收字节数据的校验处理-以crc16-modbus为例
  • 五月份0day/1day/nday漏洞汇总
  • 【计算机毕设】蜗牛兼职网的设计与实现 - 源码免费(私信领取)
  • 如何使用Spring Cache优化后端接口?
  • 笔墨挥毫如游龙 最是经典铁线篆——记著名书法家王子彬
  • python的range() 函数
  • 笔记:Windows故障转移集群下的oracle打补丁
  • 【数据结构】六种排序实现方法及区分比较
  • Java字符串String详解
  • 网络性能测试工具:iperf3介绍
  • exports和module.exports
  • Java深入 - 深入理解Java集合
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Python学习之路16-使用API
  • Terraform入门 - 1. 安装Terraform
  • Vue小说阅读器(仿追书神器)
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 离散点最小(凸)包围边界查找
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 我感觉这是史上最牛的防sql注入方法类
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • $.ajax中的eval及dataType
  • (1)(1.11) SiK Radio v2(一)
  • (13)DroneCAN 适配器节点(一)
  • (19)夹钳(用于送货)
  • (32位汇编 五)mov/add/sub/and/or/xor/not
  • (一)Java算法:二分查找
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)用.Net的File控件上传文件的解决方案
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .net 受管制代码
  • .net操作Excel出错解决
  • /etc/fstab 只读无法修改的解决办法
  • :=
  • @RestController注解的使用
  • @拔赤:Web前端开发十日谈
  • [ CTF ]【天格】战队WriteUp- 2022年第三届“网鼎杯”网络安全大赛(青龙组)
  • [ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)
  • []我的函数库
  • [17]JAVAEE-HTTP协议
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [AI Embedchain] 开始使用 - 全栈
  • [ai笔记3] ai春晚观后感-谈谈ai与艺术
  • [ARM]ldr 和 adr 伪指令的区别