7 个不稳定版本 (3 个破坏性更新)

0.4.2 2023年7月18日
0.4.1 2023年7月18日
0.3.0 2023年7月17日
0.2.0 2023年7月17日
0.1.2 2023年7月15日

网络编程分类中排名 #926

每月下载量 31

MIT 许可协议 MIT

27KB
634

Rust 包用于 Capsolver API

将 CapSolver 快速集成到 rust 代码中,以自动化解决任何类型的验证码。

安装

安装时,请使用以下之一

使用 cargo

cargo add capsolver

使用 Cargo.toml

[dependencies]
capsolver = "0.4.1"

警告

此功能需要一个异步运行时,例如 tokio

配置

导入包如下

use capsolver::{Capsolver, Token, Recognition, Config};

注意

导入 TokenRecognition 是可选的

Capsolver 包含这两个模块

创建 Config 的方式

let config = Config::new(ClientKey, ApiUrl, Interval)

//Or simply create from env
let config = Config::from_env()?;

注意

ClientKey 是必需的,它是您从 [Capsolver 控制台] 获得的客户端密钥

ApiUrl 是可选的,其默认值为 Capsolver API

Interval 也是可选的,它是检查任务结果的时间间隔(毫秒)。默认值 3000

创建客户端的方式

//Use any of them as per your needs

let token = Token::new(config);

let recognition = Recognition::new(config);

let capsolver = Capsolver::new(config);

注意

Token 用于令牌 API

Recognition 仅用于识别 API

Capsolver 包含这两个模块

示例用法

检查 CapSolver 余额

let res = capsolver.get_balance().await?;

println!("Balance: {},\nPackages: {:?}", res.balance, res.packages);

使用 ImageToText 识别 API

let task = capsolver
  .recognition()
  .image_to_text("Base64 image string", None, None, None)
  .await?;
let solution = task["solution"]["text"].as_str()?;

println!("Solution: {}", solution);

使用 FunCapctha 令牌 API

use capsolver::{OnlyToken};

let task = capsolver
  .token()
  .fun_captcha("websiteURL", "websitePublicKey", None, None, None)
  .await?;
let task_id = task["taskId"].as_str()?;
let soltion: OnlyToken = capsolver
  .get_task_result(task_id)
  .await?;

println!("Solution: {}", solution.token);

注意 请参阅 Capsolver 文档 了解上述函数中传递的选项

注意 Tokenget_task_result() 函数的返回类型,如果根据以下类型单独转换,将会更好:

更好的类型

  • HCaptchaToken
    • HCaptcha
  • OnlyToken
    • FunCaptcha
    • MtCaptcha
    • CyberSi Ara
  • GeeTestV3Token
    • GeeTestV3
  • GeeTestV4Token
    • GeeTestV4
  • ReCaptchaToken
    • ReCaptchaV3
    • ReCaptchaV4
  • DataDomeToken
    • 数据穹顶
  • AwsWafToken
    • AwsWaf
  • CloudFlareToken
    • CloudFlare(turnstile)
    • CloudFlare(挑战)

注意 此列表仅适用于令牌任务结果

示例

use capsolver::{OnlyToken, HCaptchaToken, AwsWafToken};

//This example assumes that you already have task id for each of them
let fun_captcha_task_id = TaskId;
let h_captcha_task_id = TaskId;
let aws_waf_task_id = TaskId;

let fun_captcha_solution: OnlyToken = capsolver
  .get_task_result(fun_captcha_task_id)
  .await?;
let h_captcha_solution: HCaptchaToken = capsolver
  .get_task_result(fun_captcha_task_id)
  .await?;
let aws_waf_solution: AwsWafToken = capsolver
  .get_task_result(fun_captcha_task_id)
  .await?;

println!("Funcaptcha: {}", fun_captcha_solution.token);
println!("HCaptcha: {}", h_captcha_solution.captcha_key);
println!("AwsWaf: {}", aws_waf_solution.cookie);

这就是我能解释的最好的了 :D

贡献

欢迎他们 :D

许可证

本项目采用MIT许可协议

依赖项

~6–21MB
~282K SLoC