iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 网易易盾滑块验证功能的实现
  • 204
分享到

Python 网易易盾滑块验证功能的实现

2024-04-02 19:04:59 204人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录操作环境分析解决方案使用selenium请求url,并触发滑块验证获取验证图片并计算滑块距离生成滑动轨迹滑动模块效果资源下载记一次 网易易盾滑块验证分析并通过 操作环境 win1

记一次 网易易盾滑块验证分析并通过

操作环境

  • win10 、 Mac
  • python3.9
  • selenium、PIL、numpy、scipy、matplotlib

分析

网易易盾滑块验证,就长下面这个样子

具体验证原理有兴趣的可自行查询官方文档:网易易盾开发文档

话不多少,借助之前写阿里云盾滑块和极验滑块的经验,直接上代码,详细可参考:[python3 破解 geetest(极验)的滑块验证码功能]极验滑块验证

解决方案

使用selenium请求url,并触发滑块验证

def open(self):
    # 初始化浏览器
    wait = WEBDriverWait(self.driver, 5)
     # 点击对应标签
     self.driver.get(cfg.TEST_URL)
     button = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, cfg.HD_SELECOTR)))
     button.click()
     self.tc_item = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, cfg.TC_SELECOTR)))
     self.tc_item.click()

     # 得到背景和滑块的item, 以及滑动按钮
     time.sleep(2)
     self.background_item = wait.until(
         EC.presence_of_element_located((By.CSS_SELECTOR, cfg.BG_SELECOTR))
     )
     self.slider_item = wait.until(
         EC.presence_of_element_located((By.CSS_SELECTOR, cfg.HK_SELECOTR))
     )
     self.slider_btn = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, cfg.HD_BTN)))
     self.offset = cfg.offset
     self.background_path = cfg.background_path
     self.slider_path = cfg.slider_path

获取验证图片并计算滑块距离

def get_images(self):
   """
   获取验证码图片
   :return: 图片的location信息
   """
    url = selenium_item.get_attribute("src")
    if url is not None:
        response = requests.get(url)
        with open(path, "wb") as f:
            f.write(response.content)
        img = Image.open(path).resize(size)
        img.save(path)
    else:
        class_name = selenium_item.get_attribute("class")
        js_cmd = (
            'return document.getElementsByClassName("%s")[0].toDataURL("image/png");'
            % class_name
        )
        im_info = self.driver.execute_script(js_cmd)
        im_base64 = im_info.split(",")[1] 
        im_bytes = base64.b64decode(im_base64)
        with open(path, "wb") as f:
            f.write(im_bytes)
        img = Image.open(path).resize(size)
        img.save(path)

def compute_gap(self, array):
   """
   计算缺口偏移
   """
   grad = np.array(array > 0)
    h, w = grad.shape
    # img_show(grad)
    rows_sum = np.sum(grad, axis=1)
    cols_sum = np.sum(grad, axis=0)
    left, top, bottom = 0, 0, h
    # get the top index
    p = np.max(rows_sum) * 0.5
    for i in range(h):
        if rows_sum[i] > p:
            top = i
            break
    for i in range(h - 1, -1, -1):
        if rows_sum[i] > p:
            bottom = i
            break
    p = np.max(cols_sum) * 0.5
    for i in range(w):
        if cols_sum[i] > p:
            left = i
            break
    return top, bottom + 1, left

生成滑动轨迹

def get_tracks(distance):
    v = random.randint(0, 2)
    t = 1
    tracks = []
    cur = 0
    mid = distance * 0.8
    while cur < distance:
        if cur < mid:
            a = random.randint(2, 4)
        else:
            a = -random.randint(3, 5)
        s = v * t + 0.5 * a * t ** 2
        cur += s
        v = v + a * t
        tracks.append(round(s))
    tracks.append(distance - sum(tracks))
    return tracks

滑动模块

def move_to_gap(self, track):
     """滑动滑块"""
     print('第一步,点击滑动按钮')
     slider = self.wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'geetest_slider_button')))
     ActionChains(self.driver).click_and_hold(slider).perfORM()
     time.sleep(1)
     print('第二步,拖动元素')
     for track in track:
         ActionChains(self.driver).move_by_offset(xoffset=track, yoffset=0).perform()  # 鼠标移动到距离当前位置(x,y)
         time.sleep(0.0001)

效果

资源下载

https://download.csdn.net/download/qq_38154948/85343666

到此这篇关于Python 网易易盾滑块验证功能的实现的文章就介绍到这了,更多相关Python 易盾滑块验证内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python 网易易盾滑块验证功能的实现

本文链接: https://www.lsjlt.com/news/117867.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 网易易盾滑块验证功能的实现
    目录操作环境分析解决方案使用selenium请求url,并触发滑块验证获取验证图片并计算滑块距离生成滑动轨迹滑动模块效果资源下载记一次 网易易盾滑块验证分析并通过 操作环境 win1...
    99+
    2024-04-02
  • 详解Python结合Genetic Algorithm算法破解网易易盾拼图验证
    首先看一下目标的验证形态是什么样子的 是一种通过验证推理的验证方式,用来防人机破解的确是很有效果,但是,But,这里面已经会有一些破绽,比如: (以上是原图和二值化之后的结果) ...
    99+
    2024-04-02
  • js如何仿网易实现表单验证功能
    这篇文章主要介绍了js如何仿网易实现表单验证功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。来图镇楼!html代码:<!DOCTYP...
    99+
    2024-04-02
  • Flutter实现滑动块验证码功能
    Flutter实现滑动块验证码功能,供大家参考,具体内容如下 本文实现的是一个用于登录时,向右滑动滑动块到最右边完成验证的一个功能。当滑动未到最右边时,滑动块回弹回左边起始位置。 ...
    99+
    2024-04-02
  • js canvas如何实现滑块验证功能
    本篇内容主要讲解“js canvas如何实现滑块验证功能 ”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js canvas如何实现滑块验证功能 ”吧!滑块验证内容如下话不多说先上代码想用的小伙伴...
    99+
    2023-06-14
  • JavaScript实现拼图式滑块验证功能
    目录演示前戏源码介绍主页样式设计滑块验证部分img_ver内部演示 前戏 滑块验证码是在网站、APP等应用中常见的一种验证方式,通过按照一定规则滑动滑块到指定位置完成验证,才可以进...
    99+
    2024-04-02
  • SpringBoot实现滑块验证码验证登陆校验功能详解
    目录前言一、实现效果二、实现思路三、实现步骤1. 后端 java 代码1.1 新建一个拼图验证码类1.2 新建一个拼图验证码工具类1.3 新建一个 service 类1.4 新建一个...
    99+
    2024-04-02
  • 如何使用JavaScript实现滑块验证功能
    这篇文章将为大家详细讲解有关如何使用JavaScript实现滑块验证功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下<!DOCTYPE html><html&nb...
    99+
    2023-06-26
  • Flutter怎么实现滑动块验证码功能
    这篇文章主要介绍“Flutter怎么实现滑动块验证码功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Flutter怎么实现滑动块验证码功能”文章能帮助大家解决问题。本文实现的是一个用于登录时,向右...
    99+
    2023-06-29
  • Python+Selenium实现读取网易邮箱验证码
    前面写到了一些关于python+Selenium的基础操作 的教程,这篇文章将讲解一些实战内容。 在自动化工作中,有可能会遇到一些发送邮箱验证码类似的功能,如下 我们一般的解决思路...
    99+
    2024-04-02
  • Android 简单的实现滑块拼图验证码功能
    目录实现过程:接下来我们对这个库进行介绍:实现滑块拼图验证码功能之前已经写过一篇了,上一篇使用的是自定义控件的方式实现这个功能,主要还是想让童鞋们知其然更知其所以然,还没看的童鞋可以...
    99+
    2024-04-02
  • Android 如何实现滑块拼图验证码功能
    本篇内容主要讲解“Android 如何实现滑块拼图验证码功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android 如何实现滑块拼图验证码功能”吧!本篇主要从两方面进行介绍:使用依赖库实现...
    99+
    2023-06-14
  • JavaScript如何实现拼图式滑块验证功能
    这篇文章主要介绍“JavaScript如何实现拼图式滑块验证功能”,在日常操作中,相信很多人在JavaScript如何实现拼图式滑块验证功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript如...
    99+
    2023-07-02
  • Vue实现滑动验证功能
    用Vue实现滑动验证码,鼠标点击滑动验证,验证成功之后会显示验证通过。 程序分析 1、鼠标的点击2、滑块的拖动3、未验证之前滑动条上显示的文字4、滑块箭头指向Vue函数5、判断是否拖...
    99+
    2024-04-02
  • Python实现滑块验证码详解
    本节要讲解如下图所示的滑块验证码(更为复杂的滑动拼图验证码在下一篇介绍)。这种验证码机制比较简单:将滑块拖动到滑轨的最右端即可完成验证,如下图所示。如果未将滑块拖动到滑轨的最右端,则...
    99+
    2024-04-02
  • Python调用易语言动态链接库实现验证码功能
    今天成功把易语言调用验证码通杀的DLL在Python中成功调用了 特此共享出来,下面是识别截图: 识别方法1: """当然在学习Python的道路上肯定会困难,没有好的学习资...
    99+
    2024-04-02
  • JavaScript实现拖动滑块拼图验证功能(html5、canvas)
    引言: 滑块拖动验证现在很多地方都用到,周末就琢磨着写了一个,放上来,看看有没有人用得上! 效果: 实现思路:  用一张画布绘制源图,再绘制一个填充的方形,这样就可以达到...
    99+
    2024-04-02
  • 使用python 怎么实现一个滑块验证码识别功能
    今天就跟大家聊聊有关使用python 怎么实现一个滑块验证码识别功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。普通滑动验证import timefrom se...
    99+
    2023-06-14
  • C#滑动验证码拼图验证功能实现(SlideCaptcha)
    目录使用背景:实现分析:后端代码:准备:使用:前端代码:结语:使用背景: 关于滑动验证码的使用场所还是非常多的,如:调取短信接口之前,和 注册请求之前 或者 频繁会调用的接口都需要加...
    99+
    2024-04-02
  • Vue如何实现滑动验证功能
    这篇文章主要介绍了Vue如何实现滑动验证功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。用Vue实现滑动验证码,鼠标点击滑动验证,验证成功之后会显示验证通过。程序分析鼠标的...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作