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

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

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
滑块验证码------啥?你居然还在手动滑动,你不来试试自动滑动吗
滑块验证码------啥?你居然还在手动滑动,你不来试试自动滑动吗
894 0
|
机器学习/深度学习 人工智能 Java
验证码破解全流程实战
验证码破解全流程实战
767 0
验证码破解全流程实战
|
前端开发 算法 网络安全
图片滑块验证功能很难吗?做个可以自己抠形状的图片滑块验证组件
图片滑块验证功能很难吗?做个可以自己抠形状的图片滑块验证组件
301 0
|
数据采集 机器学习/深度学习 安全
Python爬虫之极验滑动验证码的识别
了解极验滑动验证码、特点、识别思路、初始化、模拟点击、识别缺口、模拟拖动。
947 0
|
5月前
|
机器学习/深度学习 数据采集 API
Python自动化解决滑块验证码的最佳实践
Python自动化解决滑块验证码的最佳实践
|
安全 开发工具 Python
滑动拼图验证,摆脱烦人的验证码输入
你最近是否遇到过令人头疼的验证码?为何不让滑动拼图成为你的新选择呢?通过完成一个有趣的滑动拼图来验证你的身份,既能锻炼大脑,又能保护你的隐私。
滑动拼图验证,摆脱烦人的验证码输入
|
人工智能 前端开发 JavaScript
阿里云安全类云产品,验证码使用时滑动验证流程及线上问题排查
阿里云验证码产品,使用业界先进的风控引擎结合“规则+AI”模型,有效区分真实用户和机器自动化脚本攻击,避免机器请求造成业务损失。主要适用于垃圾注册、刷库撞库,薅羊毛,短信被刷等风险场景。为您提供安全可靠的业务环境。本文为大家介绍验证码使用时滑动验证流程及验证不通过的问题排查。
65759 5
阿里云安全类云产品,验证码使用时滑动验证流程及线上问题排查
|
数据采集 人工智能 JavaScript
selenium滑块解锁实现的研究
本文介绍了如何应对滑块解锁验证,这是一种常见的网站防爬策略。首先,需获取滑块及背景元素,计算偏移量,然后使用`selenium`的`actionChains`模拟滑动。通过缓动函数如`ease_out_quart`创建滑动轨迹,以增加真实性。然而,某些网站的滑块验证极其复杂,可能需要人工智能解决。此外,还讨论了使用JavaScript进行浏览器页面滚动,包括对整个页面和特定元素内滚动条的滚动操作。
|
Web App开发 存储 数据采集
如何破解极验滑动验证码?成功率 100%!
或许你没听说过极验[1],但你很大可能使用过极验的产品。极验是首家「行为式验证」安全技术服务提供商,并以提供验证码服务而闻名。我们日常会登录一些网站,有的网站登录前需要校验验证码,而这个验证码服务很可能就是极验提供的。
4981 1
如何破解极验滑动验证码?成功率 100%!
|
安全 PHP 开发工具
滑动拼图验证码,拼出完美画面!
在当今的数字时代,随着网络安全问题的日益突出,人们对于账户安全的需求也越来越迫切。而滑动拼图验证码作为一种创新的验证方式,正逐渐受到广大用户的喜爱和应用。