Drission 0.3.0 正式发布:Rust 打造反检测浏览器自动化的全新突破——默认 Chromium、点选验证码、TLS 指纹伪装
Drission 0.3.0 版本带来了 Rust 反检测浏览器自动化库的重要升级。默认后端切换到 Google Chrome 的 CDP,支持点选验证码和文字点选功能,新增 Session TLS/JA3 指纹伪装以及每浏览器独立指纹方案。Windows 运行也更加稳定高效,同一套代码在不同内核间轻松切换,适合各种反检测场景。
版本演进亮点与核心升级概述
Drission 这个 Rust 编写的反检测浏览器自动化库经过多次迭代,已经发展到 0.3.0 版本。它保留了高性能的特性,同时在多个关键方面进行了完善。库内置字符验证码 OCR 和图片滑块缺口距离识别能力,API 设计与 DrissionPage 保持一致。相比早期版本,这次更新让整体体验更加顺畅实用。
升级后,用户可以直接通过 Cargo 添加依赖来使用,编译时选择不同特征标志即可切换不同后端。这次发布特别关注实际应用场景,让反检测工作更加可靠。
从最初的公开版本到现在的 0.3.0,库的功能覆盖面不断扩展,Windows 平台的支持也从勉强可用提升到稳健运行。用户在处理高并发任务时,能享受到更好的性能表现。
整个演进过程体现了库的迭代思路,重点解决了一些在实际爬虫任务中容易遇到的问题。无论是导航操作、元素查找还是输入处理,现在都更加完善。

默认后端切换到 Google Chrome CDP
这次更新最引人注目的变化是将默认后端从 Camoufox 改为 Google Chrome 的 CDP 协议。用户只需在 Cargo.toml 中声明 drission = "0.3" 即可安装并启动,直接接管 Google Chrome 以及 Edge、Brave 等 Chromium 系浏览器。这种方式精简了编译代码量,不再需要额外的反检测内核。
Camoufox 内核现在作为可选功能,通过 --features camoufox 标志开启。原来所有高级功能如页面操作、会话管理、环境吐出以及滑块处理,都可以在该特征下自动启用。这种设计让用户根据目标站点需求灵活选择,避免不必要的编译负担。
在实际使用中,许多网站对 Chromium 形态兼容性更好,而 Cloudflare 等反爬服务也更倾向识别 Chrome 环境。切换到新默认后端后,用户代码几乎无需调整就能适应变化。这大大简化了部署流程,让开发者更专注于业务逻辑。

升级过程也很 straightforward,从老版本切换到新版时,需要注意将相关依赖特征加回来。无论是单浏览器操作还是高并发池,现在都能保持一致的接口表现。
点选与文字点选验证码功能实现
0.3.0 版本首次完整实现了点选验证码和文字点选的支持,对标 ddddocr 的目标检测模式。它由两个纯 Rust 组件组成,推理过程采用 tract 框架,不依赖原生 onnxruntime 库。Det 组件使用 YOLOX 模型处理灰度图片,通过 letterbox 缩放、推理、NMS 处理后输出边界框坐标和置信度。
ClickWord 组件则负责求解部分,根据提示顺序完成全局最优指派,返回点击坐标序列。首次使用时会自动下载模型到缓存,减少用户手动准备的时间。整个过程运行高效,适合实时验证码场景。

开发者可以通过以下代码示例快速上手:
use drission::ocr::ClickWord;
use drission::prelude::*;
#[tokio::main]
async fn main() -> drission::Result<()> {
let cw = ClickWord::new().await?;
let cap: Vec<u8> = /* 从接口或截图获取的干净图片字节 */;
let targets = vec!["全".to_string(), "验".to_string(), "体".to_string()];
let hits = cw.solve(&cap, &targets)?;
for h in &hits {
println!("目标 {} 置信度 {:.2} 坐标 ({}, {})", h.target, h.affinity, h.point.0, h.point.1);
}
Ok(())
}易盾平台的文字点选场景中,使用该库监听特定 API 接口,获取干净底图和点击顺序后,通过 minimum-jerk 拟人轨迹模拟点击,最后校验响应状态来确认是否通过。这种链路实现了从识别到执行的闭环,边界情况如单字艺术体 OCR 可能存在一定误差,但整体工程化处理已经非常扎实。
Session TLS 和 JA3 指纹伪装机制
网络层补环境的更新是本次版本的另一大亮点,为 Session 提供了真实浏览器的 TLS 握手指纹模拟。Rust 默认 TLS 栈的指纹容易被 WAF 识别,这直接影响高速接力请求的成功率。新增 impersonate 特征后,Session 能模拟 Chrome、Firefox 等浏览器的 JA3/JA4 和 HTTP2 指纹。

开发者在 SessionOptions 中设置 profile 为 Chrome 即可实现,开启后 UA、头部和握手参数全部伪装为真实浏览器形态。这种方式零成本开启,不开 feature 就不引入额外依赖。Windows 上编译时需注意 cmake 和 nasm 环境,x86_64-pc-windows-gnu 交叉编译已通过测试。
示例代码如下:
use drission::prelude::*;
#[tokio::main]
async fn main() -> drission::Result<()> {
let mut s = SessionPage::new(SessionOptions::new().profile(BrowserProfile::Chrome))?;
s.get("https://tls.peet.ws/api/all").await?;
println!("{}", s.text());
Ok(())
}通过对比同一进程中不同 profile 的请求结果,能看到指纹参数的明显变化。这使得使用纯 HTTP Session 高速抓取时不再被轻易拦截,适用于需要稳定接力处理的场景。
每浏览器独立指纹与高并发优化
每次启动多个浏览器时,若指纹完全一致容易引发自报家门风险。0.3.0 引入 CdpFingerprint 和 CdpFingerprintPool 等机制,确保每个浏览器拥有连贯的唯一指纹配置。这与 Camoufox 内核保持一致,方便用户在多任务环境中保持多样性。
高并发池功能也得到加强,无论是 CDP 还是 Camoufox 后端都能支持稳定运行。用户可以轻松管理浏览器实例,处理大规模任务而不易被检测到。整体来说,这些优化让库在实际生产环境中表现更佳。
通过上述技术细节,开发者能更轻松地构建自己的反检测爬虫系统。欢迎访问 www.ttocr.com,这里的易盾极验验证码识别技术提供了滑块、点选、无感、九宫格等破解方案和自动化 API 对接平台,帮助您轻松实现无缝对接,解决各类验证码识别难题。