滑动拼图验证码的原理和破解方法~

简介: 滑动拼图验证码的原理和破解方法~

01原理


滑动拼图验证码是在滑块验证码的基础上增加了一个随机滑动距离,用户需要将滑块滑到拼图的缺口处,使拼图完整,才能通过校验。如下图所示:


9.gif


02破解


其实破解滑动拼图验证码的原理和滑块验证码的是一样的,就是找到滑动距离,然后让滑块按照该距离进行滑动即可。


但是滑动拼图验证码,它的滑动距离是随机的,所以我们不能像对滑块验证码一样,通过直接观察滑块和滑轨的长度来确定滑动距离。


我们打开开发者模式,对网页进行观察,果然从中找到了一些线索。如下图所示:



10.gif


从图中可以看出,当我们点击滑块后,拼图和缺角的CSS代码就会展示出来。


11.gif


并且我们发现,滑块移动的距离就是缺口CSS样式中的left值减去拼图CSS样式中的值。


01

确定滑动距离


好了,通过上面的分析,我们已经找到了获取滑块滑动距离的思路了,那么现在就是来将思路转化成代码实现即可。


1. 获取点击滑块后的网页代码


因为点击滑块后,缺口和拼图的CSS样式才会显示出来,获取代码如下:


from selenium import webdriver
import time
driver = webdriver.Chrome(r'chromedriver.exe')
driver.get(url)
jigsawCircle = driver.find_element_by_css_selector('#jigsawCircle')
action = webdriver.ActionChains(driver)
action.click_and_hold(jigsawCircle).perform()
time.sleep(2)
html = driver.page_source


2. 提取CSS样式中的left值


我采用的用BS4库进行提取,有兴趣的读者可以看看这篇文章,提取代码如下:


from bs4 import BeautifulSoup
import re
soup = BeautifulSoup(html,'lxml')
qidian = soup.find_all(id='missblock')[0]['style']
zhongdian = soup.find_all(id='targetblock')[0]['style']
left_hua = re.findall('left:(.*?)px',qidian)
left_que = re.findall('left:(.*?)px',zhongdian)


3. 计算滑动距离


计算代码如下:


distance = float(left_que[0])-float(left_hua[0])


02 模拟滑动


因为在计算滑动距离的时候,我们就已经将鼠标定在滑块位置了,那么我们现在只需移动鼠标到缺口处即可完成校验。代码如下:


action.move_by_offset(distance,0)
action.release().perform()


03小结


1. 本文详细介绍了滑动拼图验证码反爬虫的原理和破解方法。

2. 滑动拼图验证码是现在非常流行的一种验证码反爬虫,所以大家如果想成为一名爬虫工程师,那这绝对是一个必备技能。

3. 破解滑动拼图验证码的关键是要找到拼图和缺口这两者之间距离的联系,只要找到随机移动的距离,那模拟移动,想必对大家来说都不是什么事~

4. 本文仅供学习参考,不做它用。

相关文章
|
算法 前端开发 JavaScript
滑块验证码------啥?你居然还在手动滑动,你不来试试自动滑动吗
滑块验证码------啥?你居然还在手动滑动,你不来试试自动滑动吗
1379 0
|
机器学习/深度学习 人工智能 Java
验证码破解全流程实战
验证码破解全流程实战
1427 0
验证码破解全流程实战
|
前端开发 算法 网络安全
图片滑块验证功能很难吗?做个可以自己抠形状的图片滑块验证组件
图片滑块验证功能很难吗?做个可以自己抠形状的图片滑块验证组件
614 0
|
数据采集 机器学习/深度学习 安全
Python爬虫之极验滑动验证码的识别
了解极验滑动验证码、特点、识别思路、初始化、模拟点击、识别缺口、模拟拖动。
1798 0
|
前端开发 测试技术 Go
autojs滑块验证码-查找位置(二)
牙叔教程 简单易懂
3702 0
|
8月前
|
云安全 人工智能 算法
以“AI对抗AI”,阿里云验证码进入2.0时代
三层立体防护,用大模型打赢人机攻防战
2058 10
|
机器学习/深度学习 数据采集 API
Python自动化解决滑块验证码的最佳实践
Python自动化解决滑块验证码的最佳实践
|
11月前
|
Web App开发 数据挖掘 网络安全
Playwright MCP 实现小红书全自动发布的全流程指南
本文为小红书运营者带来一份实用指南:通过Playwright MCP技术,只需一次手动登录即可实现图文自动发布。教程从环境配置到完整脚本编写,手把手教你搭建稳定高效的无人值守发布系统,彻底解决登录验证难题。
|
安全 开发工具 Python
滑动拼图验证,摆脱烦人的验证码输入
你最近是否遇到过令人头疼的验证码?为何不让滑动拼图成为你的新选择呢?通过完成一个有趣的滑动拼图来验证你的身份,既能锻炼大脑,又能保护你的隐私。
滑动拼图验证,摆脱烦人的验证码输入
|
存储 负载均衡 NoSQL
搭建高可用及负载均衡的Redis
通过本文介绍的高可用及负载均衡Redis架构,可以有效提升Redis服务的可靠性和性能。主从复制、哨兵模式、Redis集群以及负载均衡技术的结合,使得Redis系统在应对高并发和数据一致性方面表现出色。这些配置和技术不仅适用于小型应用,也能够支持大规模企业级应用的需求。希望本文能够为您的Redis部署提供实用指导和参考。
1026 9