用Rust实现极验滑动验证码识别


效果展示
本文将展示如何使用Rust语言实现极验滑动验证码的自动识别。从模拟点击到识别滑动缺口、计算位移并模拟拖动滑块。如果认证失败,则重复调用直到成功。

识别思路
模拟点击切换为滑动验证,并显示验证界面。
识别滑动缺口的位置,计算位移。
模拟拖动滑块。
若认证失败,重复调用。
详细过程及代码
初始化
首先,初始化Selenium对象和一些参数配置,极验验证码测试页面的网址如下:

rust

extern crate thirtyfour;
extern crate tokio;
extern crate image;

use thirtyfour::prelude::*;
use tokio;
use image::{GenericImageView, Rgba};
use std::time::Duration;

struct CrackGeetest {
    driver: WebDriver,
}

impl CrackGeetest {
    async fn new() -> Self {
        let caps = DesiredCapabilities::chrome();
        let driver = WebDriver::new("http://localhost:9515", &caps).await.unwrap();
        CrackGeetest { driver }
    }

    async fn open(&self) {
        self.driver.get("https://www.geetest.com/type/").await.unwrap();
    }

    async fn close(&self) {
        self.driver.quit().await.unwrap();
    }
}
模拟点击
首先模拟点击切换为滑动验证,然后模拟点击弹出验证图片。

rust

impl CrackGeetest {
    async fn change_to_slide(&self) -> WebElement {
        self.driver.find_element(By::Css(".products-content ul > li:nth-child(2)")).await.unwrap()
    }

    async fn get_geetest_button(&self) -> WebElement {
        self.driver.find_element(By::Css(".geetest_radar_tip")).await.unwrap()更多内容联系1436423940
}
获取背景图
首先等待验证码加载完成(wait_pic),获取网页截图(get_screenshot),然后获取验证背景图所在的位置及大小参数(get_position)和滑块对象(get_slider)。

rust

impl CrackGeetest {
    async fn wait_pic(&self

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值