python解决android版数美滑块验证码,30分钟快速解决

话不多说

先看滑块 右滑拼图 我们用opencv就可以了,要想提高识别率,就取对接图片打码平台

opencv代码,注释借鉴于网络

import cv2
import numpy as np
from io import BytesIO

def get_distance3(fg_resp, bg_resp):
    """计算滑动距离"""
    # 1. 将背景图、滑块图的二进制响应体转为BytesIO对象
    bg = BytesIO(bg_resp)
    fg = BytesIO(fg_resp)
    # 2. 使用imdecode进行图像解码,转成OpenCV中的Mat对象
    target = cv2.imdecode(np.asarray(bytearray(fg.read()), dtype=np.uint8), 0)
    template = cv2.imdecode(np.asarray(bytearray(bg.read()), dtype=np.uint8), 0)
    # 3. 使用matchTemplate方法进行模板匹配,返回背景图中与滑块的位置匹配值数组
    result = cv2.matchTemplate(target, template, cv2.TM_CCORR_NORMED)
    # 4. 使用numpy中的unravel_index函数获取result中位置匹配值最大的索引位置,既是滑动的距离
    _, distance = np.unravel_index(result.argmax(), result.shape)
    return distance

默认图片是600*300

所以计算出来的距离需要做操作(距离/600*391)

为什么是391  因为我的手机设备把原图600*300的图缩放成391*195

你需要根据你的手机设备进行修改

网上去找一个生成鼠标轨迹的代码,直接用

def get_random_tracks(distance):
    """生成轨迹"""
    tracks = []

    y = 0
    v = 0
    t = 1
    current = 0
    mid = distance * 3 / 4
    exceed = 80
    z = t

    tracks.append([0, 0, 1])

    while current < (distance + exceed):
        if current < mid / 2:
            a = 15
        elif current < mid:
            a = 20
        else:
            a = -30
        a /= 2
        v0 = v
        s = v0 * t + 0.5 * a * (t * t)
        current += int(s)
        v = v0 + a * t

        y += random.randint(-5, 5)
        z += 100 + random.randint(0, 10)

        tracks.append([min(current, (distance + exceed)), y, z])

    while exceed > 0:
        exceed -= random.randint(0, 5)
        y += random.randint(-5, 5)
        z += 100 + random.randint(0, 10)
        tracks.append([min(current, (distance + exceed)), y, z])

    return tracks

解密的是des的 ,随便找个des加密代码就行

提交参数

(end_time-start_time,对应密钥)

(x/391,对应密钥)

(鼠标轨迹数组,对应密钥)
加密提交就行

结果,opencv成功概率还行 10个7次都过了

因为写多了不让发布

Python可以用来解决滑块验证码(通常称为CAPTCHA)通过一些图像处理库如PIL、OpenCV、Tesseract OCR等以及机器学习技术。以下是一个简化的步骤: 1. **图像读取和预处理**:首先,使用PIL库加载验证码图片,并进行灰度化处理,有时可能还需要二值化来提高识别精度。 ```python from PIL import Image img = Image.open('captcha.png') img_gray = img.convert('L') ``` 2. **定位滑块**:利用滑块的独特形状,可以尝试寻找关键点(例如边缘)并确定滑块的位置和范围。 3. **提取滑块区域**:从原始图像中裁剪出滑块所在的区域,减少噪声影响。 4. **OCR识别**:对提取出来的滑块区域使用OCR工具,如Tesseract。安装`pytesseract`库并配置好路径: ```bash pip install pytesseract pytesseract.pytesseract.tesseract_cmd = 'path/to/tesseract' ``` ```python import pytesseract slider_text = pytesseract.image_to_string(img_slider_region) ``` 5. **滑块解码**:有些滑块会有特殊的解码规则,比如基于字母顺序的偏移量。这部分通常需要人工分析或事先了解验证码的设计规则。 6. **验证结果**:将识别到的滑块字与服务器返回的正确值进行比较,完成验证。 请注意,随着验证码设计越来越复杂,完全自动化识别滑块验证码可能会有挑战,特别是在存在干扰元素的情况下。此外,很多网站现在会采用反爬虫措施,频繁更换验证码或加入行为检测,因此实际应用时可能需要结合模拟点击等手段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值