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 次
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};
注意
导入
Token
或Recognition
是可选的
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 文档 了解上述函数中传递的选项
注意
Token
的get_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