Python+selenium破解极验滑块验证码模拟人类行为

python模拟滑动滑块验证 滑动滑块的两个关键点为:(1)生成滑动轨迹(2)控制滑动按钮进行滑动 (1)根据要滑动的距离生成滑动轨迹,此处是模拟人为滑动:先加速滑动滑块,再减速滑动滑块。代码如下: 其中distance参数就是要滑动的距离,返回值tracks为生成的滑动轨迹,,后面要把tracks传给滑动滑块的函数。 def get_tracks(self, distance): """ 根据偏移量获取移动轨迹 :param distance:偏移量 ... 阅读详情

写在前面:

其实本程序还有很多需要完善和改进的地方,后面会进行完善,大家多多包涵

概述

  1. 通过完整图片与缺失滑块的图片进行像素对比,确定滑块位置

  2. 边缘检测算法,确定位置

  3. 规避检测,模拟人的行为进行滑动滑块

实现

-这里以带刷网为例,展示验证码滑动的效果

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2021/1/2 18:34
# @Author  : huni
# @File    : 验证码2.py
# @Software: PyCharm
from selenium import webdriver
import time
import base64
from PIL import Image
from io import BytesIO
from selenium.webdriver.support.ui import WebDriverWait
import random
import copy

class VeriImageUtil():

    def __init__(self):
        self.defaultConfig = {
            "grayOffset": 20,
            "opaque": 1,
            "minVerticalLineCount": 30
        }
        self.config = copy.deepcopy(self.defaultConfig)

    def updateConfig(self, config):
        # temp = copy.deepcopy(config)
        for k in self.config:
            if k in config.keys():
                self.config[k] = config[k]

    def getMaxOffset(self, *args):
        # 计算偏移平均值最大的数
        av = sum(args) / len(args)

        maxOffset = 0
        for a in args:
            offset = abs(av - a)
            if offset > maxOffset:
                maxOffset = offset
        return maxOffset

    def isGrayPx(self, r, g, b):
        # 是否是灰度像素点,允许波动offset
        return self.getMaxOffset(r, g, b) < self.config["grayOffset"]

    def isDarkStyle(self, r, g, b):
        # 灰暗风格
        return r < 128 and g < 128 and b < 128

    def isOpaque(self, px):
        # 不透明
        return px[3] >= 255 * self.config["opaque"]

    def getVerticalLineOffsetX(self, bgImage):
        # bgImage = Image.open("./image/bg.png")
        # bgImage.im.mode = 'RGBA'
        bgBytes = bgImage.load()

        x = 0
        while x < bgImage.size[0]:
            y = 0
            # 点》》线,灰度线条数量
            verticalLineCount = 
Web自动化测试之滑动验证码的解决方案 目录滑动验证破解思路案例讲解实现代码运行效果:根据传入滑块,和背景的节点,计算滑块的距离滑动滑块进行验证总结: 在Web自动化测试的过程中,经常会被登录的验证码给卡住,不知道如何去通过验证码的验证。 一般的情况下遇到验证码我们可以都可以找开发去帮忙解决,关闭验证码,或者给一个万能的验证码! 那么如果开发不提供帮助的话,我们自己有没有办法来处理这些验证码的问题呢? 答案当然是有的,常见的验证码一般分为两类,一类是图文验证码,一类是滑动验证码!关于滑动验证码破解的思路大体上来讲就是以下两个步骤: 1、获取滑块滑 阅读详情

相关推荐

实践 | 怎么用Python实现滑动验证码

主要使用 Python 的 Selenium 库和对应的 WebDriver(例如 ChromeDriver),通过模拟鼠标操作实现。

dingxiang234的博客 2112

Python+selenium破解极验滑块验证码模拟人类行为~

写在前面: 其实本程序还有很多需要完善和改进的地方,后面会进行完善,大家多多包涵 概述 通过完整图片与缺失滑块的图片进行像素对比,确定滑块位置 边缘检测算法,确定位置 规避检测,模拟人的行为进行滑动滑块 实现 -这里以带刷网为例,展示验证码滑动的效果 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/1/2 18:34 # @Author : huni # @File : 验证码2.

爬遍所有网站 1022

极验滑动验证码概述

首先,通过Selenium模拟操作获取不带缺口的图片,然后获取带缺口的图片,对比两张图片像素点的RGB值,得到缺口位置,最后模拟拖动滑块,通过匀加速匀减速运动来完成验证。但是要是匀速拖动,会必然识别出是程序,非人类操作,因为人类无法做到完全匀速拖动,会识别出是机器操作,使得验证码失败。这种方法对于不同的极验滑动验证码来说都适用,关键在于识别的思路,如何识别缺口位置,如何生成运动轨迹等。之后遇到类似的验证码,都可以这样进行识别。接下来识别缺口的位置,首先获取两张图片,进行对比,不一样的位置就是缺口。

2301_78146980的博客 630

Python逆向破解极验三代滑块验证码:从JS加密到轨迹模拟的完整实战

验证码是网络安全中区分人机行为的关键技术,其核心原理在于通过前端交互与后端验证相结合,识别自动化脚本。在Web自动化与数据采集领域,破解复杂验证码(如滑块验证)是提升脚本通过率的关键技术挑战。其技术价值在于保障业务自动化流程的顺畅,广泛应用于爬虫、自动化测试及批量登录等场景。本文聚焦于极验三代滑块验证码的自动化破解,深入剖析其前端行为采集、JS加密参数逆向(如核心参数w的生成逻辑)以及人类轨迹模拟等核心环节。通过结合Selenium、PyExecJS等工具,详细演示了如何定位加密函数、提取并移植算法,并生成

weixin_34203832的博客 479

滑动验证码的破解(python+opencv+selenium)

这个周末突然接到电话,要监听一个网页内容,如果网页发生了变化,需要邮件通知。第一感觉这个事应该挺简单的啊,用爬虫把页面读取下来,如果和上次爬取的内容不一样,不就说明发生了变化了嘛。这个时候我把改网页打开,突然发现,what,竟然是要登录后才能跳转到想要的网页,心想这个也没有什么吗,大不了我把账号,密码填进去不就ok了么,当我把账号密码填进去,又TM出幺蛾子了,竟然出现了如下的滑动验证码。 这个时...

Tracy_LeBron的博客 1万+

Python爬虫之selenium+极验滑块破解

现在使用B站的小伙伴们越来越多,我也是越来越喜欢B站了,因为有很多的资源可以学习。 当然宋宋在B站也有自己的主页:编程界-小蜗牛的个人空间_哔哩哔哩_Bilibili。大家如果需要可以学习学习。 此次B站老铁莫怪宋宋拿你作为滑块破解的对象,谁让我这么爱你呢!!! 废话不多少我们现在开始,极验给大家简单介绍一下:https://www.geetest.com/,在这里给大家提供了智能组合、滑块验证、点选验证的体验。 滑块验证就是其中一部分,而像B站、斗鱼、简书、小米、汽车之家等都是他的客户。如果大

i54996的博客 2006

Python爬虫实战 | (15) 破解bilibili登陆滑动验证码

在本篇博客中,我们将使用selenium模拟登录bilibili网站,破解其登陆时的滑动验证码。 首先回顾一下,滑动验证码相关知识: 简介 滑动图形验证码,主要由两个图片组成:抠块和带有抠块阴影的原图。 这里有两个重要特性保证被暴力破解的难度: (1)抠块的形状随机 (2)抠块所在原图的位置随机 生成滑动验证码 1)后端随机生成抠图和带有抠图阴影的背景图片,后台保存随机抠图位置坐标...

sdu_hao的博客 7003

【python+selenium】极验滑动验证码的实现

效果gif 前言 在上次做完图形验证码后,发现识别率不尽人意,可以说是很不满意,稍微有点更多的干扰,打印出来的字符一塌糊涂!这次转手对极验的滑动验证码进行识别。。。 目前市面上越来越多的网站的注册登录用滑动验证码进行验证,与人互动的形式来判定你是不是人类操作,所以说,我们要进行破解,就是模仿人体操作进行识别与通过验证! 还有一些注意问题后面说,通常也是识别不成功的关键! 识别率估摸着有90%以上了! 正序 要用到的:selenium、PIL、io、Chrome浏览器、还有驱动浏览器的插...

易云云博客 2550

使用C++破解极验第三代滑块验证码

本文将详细介绍如何使用C++结合图像处理和自动化技术,破解极验第三代滑块验证码。为了模拟人类拖动滑块行为,我们可以先使用Python生成拖动轨迹,然后在C++中调用Python脚本。为了实现验证码破解,我们需要安装libcurl、OpenCV以及Selenium WebDriver。首先,我们使用libcurl库来获取验证码图片并保存到本地。在C++中使用system函数调用Python脚本,生成拖动轨迹并控制浏览器完成滑块拖动。接下来,使用OpenCV加载和处理图片,找到滑块缺口的位置。

2401_85453501的博客 955

Python结合ddddocr与Selenium破解极验滑块验证码实战

验证码是网络安全中常见的人机验证机制,旨在区分人类用户与自动化程序。其核心原理是通过图像、逻辑或行为挑战来增加机器模拟的难度。在自动化测试、数据采集等工程实践中,高效、准确地处理验证码成为关键。ddddocr作为一款基于深度学习的开源OCR库,凭借其对滑块、点选等复杂验证码的高识别率,为自动化破解提供了有力工具。结合Selenium的浏览器自动化能力,可以模拟人类操作轨迹,有效应对如极验(Geetest)等主流滑块验证码。本文以极验滑块验证码为例,详细拆解了从环境搭建、图像识别、距离计算到拟人化滑动的完整技

cojm55771的博客 496

Python爬虫 | 滑动验证码破解

极验验证码:需要手动拼合滑块来完成的验证,相对图形验证码识别难度上升了几个等级。下面用程序识别并通过极验验证码的验证,其中有分析识别思路、识别缺口位置、生成滑块拖动、模拟实现滑块拼合通过验证等步骤。需要用到Chrome 浏览器,并配置 ChromeDriver ,要用到的 Python 库是 Selenium。 1、 对极验验证码了解   极验验证码官网:http://www.geetest.com/。一个专注提供验证安全的系统,主要验证方式是拖动滑块拼命图像。若图像完全拼合,则验证成功,即表单提交,否则

易云云博客 3736

通过CN3口直接控制台达伺服电机A2-M(二)

既然可以通过RS485与伺服驱动器进行通讯,那么就肯定可以控制转速 首先,需要了解下 ‘控制模式及控制命令输入源设定’ 依据以上资料,速度控制模式有两种,S和SZ模式,分别对应模式选择中的02和04,对P1-01的地址0102进行写地址操作即可实现,一开始我使用了S模式,但是这个模式在寸动模式下会自动运转,不符合我控制的要求,后面改用SZ模式,就可以实现零速度。 使用串口工具发送命令:“01 06 01 02 00 04 28 35”即可以实现设置,设置完成后可以手动在伺服驱动器的按键面板上进行确

HKing_evil的博客 6825

数字IC后端时序违例修复:setup/hold冲突与时钟树优化实战

时序收敛是数字IC后端设计中最关键的环节之一,直接影响芯片能否在目标频率下稳定工作。建立时间与保持时间的本质是寄存器对数据稳定性的物理约束,而实际工程中,setup违例和hold违例往往此消彼长,冲突的根源在于数据路径与时钟路径的延迟匹配。时钟树综合(CTS)作为连接逻辑与物理的关键步骤,其skew、insertion delay和transition的优化直接决定了时序修复的成败。通过useful skew技术、合理的单元替换和路径结构调整,可以系统性地解决setup/hold冲突,实现时序收敛。本文结合

weixin_28292761的博客 221

VsCode+JLink+GCC替代Keil开发GD32程序-个人总结

对个人使用vscode+Jlink开发GD32程序做了总结,供需要者参考。

MyCollege1999的博客 2762

NSFC结题报告下载脚本失效?3步教你手动修复下载按钮问题(2024最新版)

针对NSFC官网域名变更导致结题报告下载脚本失效的问题,本文提供了详细的手动修复指南。通过三步操作,教你如何修改用户脚本的域名匹配规则,恢复下载按钮功能,确保NSFC结题报告下载器能继续高效工作。

vscode6remote的博客 751

Python入门实战:Python生物信息学编程基础

本文旨在为生物学背景的研究人员和对生物信息学感兴趣的程序员提供一个全面的Python生物信息学编程入门指南。我们将从Python基础知识开始,逐步深入到生物信息学特定的工具和技术,最终达到能够独立开发生物信息学分析程序的水平。Python编程基础生物信息学常用数据结构和算法DNA和蛋白质序列分析基因组数据处理生物信息学数据可视化Biopython库的使用实际项目案例背景介绍:概述文章目的、范围和预期读者核心概念与联系:介绍Python和生物信息学的基本概念。

AI架构师小马 1510

2026华为OD机试(JAVA&Go)真题【E卷+A卷+B卷+C卷+D卷】目录+在线OJ

华为OD机试真题题库【E卷+A卷+B卷+C卷+D卷】目录,Java实现。

MISAYAONE的博客 34万+

为什么reg2cgate的setup难以满足?

从图上我们可以看出,clock gate的clock latency是delay1,reg1的clock latency是delay1+delay2,可以明显的看出,reg2cgate的setup,其launch clock path delay天生是要比capture clock path delay要多delay2的,因此其setup相对于reg2reg是不好满足的。因此,在数字后端脚本、flow上比较擅长,大家如果有相关的问题,可以提供答疑咨询服务。因此,能够让我们去处理的就是delay2的值。

芯冰乐 1932

【Bluetooth蓝牙开发】一、开篇词 | 打造全网最详细的Bluetooth开发教程

1、开篇词 2、蓝牙开发入门 3、蓝牙协议栈总览 4、蓝牙协议栈——物理层 5、蓝牙协议栈——链路层 6、蓝牙协议栈——传输层 7、蓝牙协议栈——L2CAP协议 8、蓝牙协议栈——ATT协议 9、蓝牙协议栈——GATT协议 10、蓝牙通信流程分析 11、蓝牙协议栈——Bluez交叉编译 12、蓝牙调试工具汇总

Donge's Blog 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

上一篇: 爬取冰冰B站千条评论,看看大家说了什么!
下一篇: Python爬取淘宝销量数据!这年头数据就是钱啊!
pythonlaodi
博客等级 码龄6年 286粉丝 244原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值