滑动验证码有什么用,滑动验证破解的方法!

许多 朋友们意见反馈,在web自动化技术的全过程中,常常会被登陆的验证码给卡死,不清楚如何去根据验证码的认证 。今日专业给大伙儿来聊一聊验证码的难题,一般的状况下碰到验证码我们可以都能够找开发设计去帮助处理,关掉验证码,或是给一个全能的验证码!那麼假如开发设计不给予协助得话,我们自己是否有方法来解决这种验证码的难题呢?回答自然是有的,普遍的验证码一般分成两大类,一类是文图验证码,一类是滑动验证码!
有关图文识别的验证码,以前早已出了有关的鉴别解决方法,今日也不做太多的详细介绍了,有兴趣爱好的小伙伴们能够私信领到配套设施的视頻材料 。今日大家关键来聊一聊滑动验证码如何去鉴别破译 。
滑动认证破译构思有关滑动验证码破译的构思大致而言便是下列2个流程:
? 1、获得滑块滑动的间距
? 2、仿真模拟拖拽滑块,根据认证 。
? 听起来是非常简单,可是获得滑块滑动的间距,大部分小伙伴们沒有构思,不清楚如何去获得 。实际上要获得出来也不会太难,有关这类滑动的验证码,滑块和缺口情况全是分别是一张单独的图片,我们可以把这二张图片,免费下载出来凭借图像识别技术的技术性,去鉴别缺口在背景图中的部位,随后减掉滑块当今地理位置,就可以得到必须滑动的间距 。这个时候许多 小伙伴们会想图像识别技术技术性我不想啊,不容易没有关系,后边会给到大伙儿一个封裝好的滑块鉴别控制模块,如果你传到滑块和缺口背景图的原素连接点就能测算出滑块的缺口部位 。
实例解读话不多说,大家先看来一个实例(QQ空间登陆),这里采用了一个自己封裝的滑动间距鉴别的控制模块slideVerfication,有必须的小伙伴们能够私信获得 。qq空间登录实例完成流程以下:
? 1、建立一个driver目标,浏览qq登录网页页面
? 2、键入账户密码
【滑动验证码有什么用,滑动验证破解的方法!】? 3、点一下登陆
? 4、仿真模拟滑动认证
完成编码"""============================Author:柠檬班-木森Time:2020/4/2020:12E-mail:[email protected]:湖南省零檬信息科技有限责任公司============================"""import timefrom selenium import webdriverfrom slideVerfication import SlideVerificationCode# 1、建立一个driver目标,浏览qq登录网页页面browser = webdriver.Chrome()browser.get("https://qzone.qq.com/")# 2、键入账户密码# 2.0 点一下转换到登陆的iframebrowser.switch_to.frame('login_frame')# 2.1 点一下账户密码登陆browser.find_element_by_id('switcher_plogin').click()# 2.2精准定位账户文本框,键入账户browser.find_element_by_id("u").send_keys("123292678")# 2.3精准定位登陆密码键入输入支付密码browser.find_element_by_id("p").send_keys("PYTHON01")# 3、点一下登陆browser.find_element_by_id('login_button').click()time.sleep(3)# 4、仿真模拟滑动认证# 4.1转换到滑动验证码的iframe中tcaptcha = browser.find_element_by_id("tcaptcha_iframe")browser.switch_to.frame(tcaptcha)# 4.2 获得滑动有关的原素# 挑选拖拽滑块的连接点slide_element = browser.find_element_by_id('tcaptcha_drag_thumb')# 获得滑块图片的连接点slideBlock_ele = browser.find_element_by_id('slideBlock')# 获得缺口情况图片连接点slideBg = browser.find_element_by_id('slideBg')# 4.3测算滑动间距sc = SlideVerificationCode(save_image=True)distance = sc.get_element_slide_distance(slideBlock_ele,slideBg)# 滑动间距差值校准,滑动间距*图片在网页页面上表明的放缩比-滑块相对性的原始部位distance = distance*(280/680) - 22print("校准后的滑动间距",distance)# 4.4、开展滑动sc.slide_verification(browser,slide_element,distance=100)
运作实际效果:有关滑动验证码的鉴别难题就是这样解决了,那麼下面给大伙儿来讲下封裝的slideVerfication这一控制模块的鉴别基本原理,实际上有关这一控制模块图像识别技术,也是依靠了第三方的图象处理控制模块来开展鉴别的,python中有很多现有的用于解决图片的库,这里我应用的是opencv-python来开展鉴别的 。slideVerfication控制模块上边采用的2个方式的一部分参照编码以下:

推荐阅读