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

很多小伙伴们反馈,在web自动化的过程中,经常会被登录的验证码给卡住,不知道如何去通过验证码的验证。今天专门给大家来聊聊验证码的问题,一般的情况下遇到验证码我们可以都可以找开发去帮忙解决,关闭验证码,或者给一个万能的验证码!那么如果开发不提供帮助的话,我们自己有没有办法来处理这些验证码的问题呢?答案当然是有的,常见的验证码一般分为两类,一类是图文验证码,一类是滑动验证码! 关于图文识别的验证码,之…

很多小伙伴们意见反馈,在web自动化技术的过程当中,经常会被登陆的验证码给卡死,不知道该如何去根据验证码的认证。今日专门给大伙儿来聊聊验证码问题,一般的情形下碰到验证码我们能都能够找开发设计去帮忙解决,关掉验证码,或者给一个万能的验证码!那么如果开发设计不给予帮助得话,你自己有没有办法来处理这种验证码的问题呢?回答那就是有些,比较常见的验证码一般分为两类,一类是文图验证码,一类是滑动验证码!

困惑你很久的滑动验证码,破解方案来啦

有关图文识别的验证码,之前已经出有关的鉴别解决方法,今日也不做过多的讲了,有兴趣的小伙伴可以私信领到配套的视频资料。我们今天关键来聊聊滑动验证码怎样去鉴别破译。

滑动认证破译构思

有关滑动验证码破译的思路大致来讲就是下列2个流程:

1、获得滑块滑动之间的距离

2、仿真模拟拖拽滑块,通过验证。

听上去是非常简单,可是获得滑块滑动之间的距离,大部分小伙伴们没有思路,没法去获得。其实要获得出来也不难,有关这类滑动的验证码,滑块和缺口环境全是各是一张独立图片,我们可以把这二张图片,下载下来凭借图像识别技术的专业技术,去鉴别缺口在背景中的位置,随后减掉滑块当前所在位置,就能得到必须滑动之间的距离。这时候很多小伙伴会想图像识别算法我不会啊,不容易没关系,后面会给到大家一个封装形式好一点的滑块鉴别控制模块,如果你传到滑块和缺口背景的元素连接点就可计算出滑块的缺口部位。

实例解读

啥也不说了,我们首先看来一个实例(QQ空间登陆),这里用到了一个自己封装形式的滑动间距识别的控制模块slideVerfication,如果有需要的小伙伴可以私信获得。qq空间登录实例完成流程如下所示:

1、建立一个driver目标,浏览qq登录网页页面

2、键入账户密码

3、点击登录

4、仿真模拟滑动认证

完成编码
\"\"\"============================Author:柠檬班-木森Time:2020/4/20   20:12E-mail:3247119728@qq.comCompany:湖南省零檬信息技术有限公司============================\"\"\"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个方法的一部分参照编码如下所示:

def get_element_slide_distance(self, slider_ele, background_ele, correct=0):    \"\"\"    依据传到滑块,和背景的连接点,测算滑块之间的距离    此方法只有测算 滑块和背景全是一张详细图片的画面,    假如背景是由好几张小图片拼凑下去的背景图,    此方法不适合,请使用get_image_slide_distance这招    :param slider_ele: 滑块图片的连接点    :type slider_ele: WebElement    :param background_ele: 背景的连接点    :type background_ele:WebElement    :param correct:滑块缺口截屏的修正值,默认为0,调节截屏对不对的情形下才能用    :type: int    :return: 背景缺口位置的X轴坐标位置(缺口图片左界限部位)    \"\"\"    # 获得验证码的图片    slider_url = slider_ele.get_attribute(\"src\")    background_url = background_ele.get_attribute(\"src\")    # 免费下载验证码背景,滑动图片    slider = \"slider.jpg\"    background = \"background.jpg\"    self.onload_save_img(slider_url, slider)    self.onload_save_img(background_url, background)    # 载入开展饱和度图片,转换为numpy里的数组类型数据信息,    slider_pic = cv2.imread(slider, 0)    background_pic = cv2.imread(background, 0)    # 获得缺口图二维数组的形态 -->缺口图的宽和高    width, height = slider_pic.shape[::-1]    # 将解决以后的图片另存    slider01 = \"slider01.jpg\"    background_01 = \"background01.jpg\"    cv2.imwrite(background_01, background_pic)    cv2.imwrite(slider01, slider_pic)    # 载入另存的滑块图    slider_pic = cv2.imread(slider01)    # 开展色彩转换    slider_pic = cv2.cvtColor(slider_pic, cv2.COLOR_BGR2GRAY)    # 获得偏色的平方根    slider_pic = abs(255 - slider_pic)    # 储存图片    cv2.imwrite(slider01, slider_pic)    # 载入滑块    slider_pic = cv2.imread(slider01)    # 载入背景    background_pic = cv2.imread(background_01)    # 较为两张图的重复地区    result = cv2.matchTemplate(slider_pic, background_pic, cv2.TM_CCOEFF_NORMED)    # 获得图片的缺口部位    top, left = np.unravel_index(result.argmax(), result.shape)    # 背景里的图片缺口坐标位置    print(\"现阶段滑块的缺口部位:\", (left, top, left   width, top   height))    return left
def slide_verification(self, driver, slide_element, distance):    \"\"\"    滑动滑块开展认证    :param driver: driver目标    :type driver:webdriver.Chrome    :param slide_element: 滑块的元组    :type slider_ele: WebElement    :param distance:  滑动之间的距离    :type: int    :return:    \"\"\"    # 获得滑动前网站的url地址    start_url = driver.current_url    print(\"必须滑动之间的距离为:\", distance)    # 依据滑动间距形成滑动运动轨迹    locus = self.get_slide_locus(distance)    print(\"生成的滑动运动轨迹为:{},运动轨迹之间的距离总和为{}\".format(locus, distance))    # 按住鼠标键    ActionChains(driver).click_and_hold(slide_element).perform()    time.sleep(0.5)    # 遍历轨迹开展滚动    for loc in locus:        time.sleep(0.01)        ActionChains(driver).move_by_offset(loc, random.randint(-5, 5)).perform()        ActionChains(driver).context_click(slide_element)    # 释放出来电脑鼠标    ActionChains(driver).release(on_element=slide_element).perform()

有关滑动验证码鉴别就给大家分享到这里了,以上解决方案也是有相对应的讲解视频

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年8月14日 下午4:51
下一篇 2022年8月14日 下午4:55

相关推荐

  • 第五人格是什么类型的游戏,揭秘第五人格最后的真相

    在第五人格游戏中,很多人在第一次玩游戏的时候对于这个游戏名字分外的感兴趣。首先来说一款游戏都需要一个高大上的名字才能让玩家从感知和印象上打上好评,那么,第五人格这个陌生的字眼。到底是何意义呢? 第五人格 简单来说,第五人格属于一种专业用语。属于人类交际社会的综合人格总体。事实上,我们每个人都至少拥有三种以上的另类人格,并且会不断的出现在自己的生活内。当然了,拥有人格越多也就表明这个人类已经变得不正…

    2022年6月15日
    670
  • 飞利浦hx6730使用技巧(实测入门必备的一款电动牙刷)

    现如今,电动牙刷已经作为家庭必备个护用品出现在了每个家庭的洗漱台上,我早在五年前就从欧乐B入手了电动牙刷,后来因为体验问题,先后换过力博得,松下,飞利浦的6511等,这次双十一,公公婆婆刚好来长沙了,就给他们也升级一下,之前他们用的力博得,力度非常小,用起来不够舒服,这次就都给他们换飞利浦了,这款飞利浦机皇HX6730是涵盖了飞利浦电动牙刷的高中低端款的实用功能,而价格在300元区间,简直就是性价…

    2022年9月22日
    1030
  • word如何删除页眉页脚,只需五步轻松删除

    有很多同事在问的这个问题?我们在一些教学资源网下载的word文档,如试卷和教学设计之类的,往往带有各种各样的页眉、页脚和水印之类的,影响我们的使用,怎么快速删除呢?其实很简单,下面我以word2016为例,几秒就搞掂了。 1.打开文档之后,双击页眉 2.点击左上的页眉小三角,删除页眉。 删除页眉后还有一条线没有删掉,点开始-在右边样式的小三角点开,点清除格式即可。 下图中,页眉中的直线已经清除了。…

    2022年10月2日
    370
  • 民政局周六上班吗,2020民政局上班时间表

    在普通民众的心里,民政局就是主管婚姻登记的部门,现在民政局已经成为登记结婚的代名词了,因此很多人很关注法定节假日民政局怎么放假的,下面我们就一起来看看民政局2018放假时间表。 法定节假日民政局怎么放假的 民政局是根据国家放假通知来放假的,所以只要是法定节假日都会放假。 各省、自治区、直辖市人民政府,国务院各部委、各直属机构: 经国务院批准,现将2018年元旦、春节、清明节、劳动节、端午节、中秋节…

    2022年10月4日
    460
  • 米家运动鞋2好不好(实测无论外观设计还是做工用料都非常好)

    作为一个胖子,天然对跑步神往,毕竟跑步减肥还是有点效果的,可惜需要持之以恒跑下去才行,像我只有几天热度难怪摆脱不了胖子之名。我寻思着再这样胖下去也不是办法,还是整双运动鞋回来狠下心跑步减肥吧!所以这双刚上市没多久的米家运动鞋2就成为我的目标了。 米家运动鞋2在外观设计和做工用料方面相比原来的1代都有着不小的提升,但价格仍然维持在199元,在这个余额宝跑不赢通胀的年代,可以说相当良心了,性价比蛮高的…

    2022年9月19日
    660
  • 迪斯按摩椅怎么样(深度评测其产品质量)

    时代的进步与科技的创新,确实按摩椅已从商场的体验式按摩逐步转为家庭必入健康首选大件,那按摩椅到底有什么优势可以走进千家万户呢?笔者为您简要解答一下! 一:我不是家中的花瓶摆设 按摩椅的时尚外观已经越来越能拉高居家的装修B格,按摩椅的外观也更加时尚,用料也特别的考究,有环保的皮革材质,高端的真皮材质。 更多购买按摩椅的用户会首先搭配自己家居的装修风格来搭配外观来就行挑选。 二:花瓶中的战斗机 按摩椅…

    2022年10月23日
    310
  • 鞋带的穿法图解,2020年最火系鞋带的7种方法

    十字交叉结 1、一端在内测打结,另外一端按照顺序穿孔,然后跳一个空穿进去; 2、按照相同的方法一直往下系,反复之后,剩下的鞋带可以塞到内侧打结处理; 3、另外的紫色鞋带也按照相同的方法,按照顺序穿孔; 4、从下面穿进去,再从上面穿进来; 5、根据鞋子的颜色选择谐和的鞋带,并将多余的鞋带在内侧打结处理。 麻花结 1、两条鞋带在里面打结之后穿出来; 2、两条鞋带交叉之后从第二个孔穿出来; 3、这时候为…

    2022年10月13日
    500
  • 久伴青少年英语怎么收费的,久伴英语学习效果

    大家好,这里是Miki聊英语,专注于各大英语培训机构体验与测评。最近久伴英语的讨论度很高,很多家长被他们家的“同伴式课堂”特色所吸引。现在是疫情期间,在家上课也能有同龄孩子相伴,还能通过小竞争调动孩子的积极性,这个不错!想必很多家长都是这么想的吧。今天,miki不仅要来回答久伴少儿英语是连锁学校吗等基础问题,还要来深扒一下这种同伴式课堂的优缺点! 久伴少儿英语是连锁学校吗?因为很多地区的家长都听说…

    2022年8月14日
    400
  • 笔记本哪个好,这三款笔记本好用不贵

    现在笔记本电脑已经成为了大学生的标配,无论是做作业还是娱乐和游戏,大家都比较需要笔记本,而现如今手机行业火爆的情况下买很多人都已经不关注笔记本电脑了,其实一样大家关注笔记本同样也是配置、性能、颜值和性价比等等,今天小编就为大家收集了几款笔记本电脑,来推荐给大家,我们来看一看吧。 华硕顽石(ASUS) 五代FL8000UF ,华硕可以说是电脑行业的老品牌了,无论是售前售后都可以有很好的体验,这款笔记…

    2022年10月11日
    370
  • 熊猫直播为什么凉了,揭秘熊猫直播倒闭的主要原因

    熊猫直播真的凉了,现在就连官方微博都站出来了。熊猫直播官微今天宣布熊猫直播主站即将开启“流浪计划”,并且配了一张一只熊猫对大家说“Bye”的图片。这也预示着熊猫直播将在近日内被关闭。 熊猫直播官微的微博的原文如下:“熊猫直播主站流浪计划,第一阶段开启。工程师请逐渐断开与母星连接。注意,请务必保持已连接的服务正常。” 评论中不少员工开始留言“断开连接”,也有一些员工难过地写下不想断开连接,想要等待归…

    2022年7月11日
    7160

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信