drission
用 Rust 控本机 Chrome(CDP)。同仓库另有一个二进制 drs,给终端脚本和 Cursor / Codex 的 MCP 用。
简体中文 · English · docs.rs · CHANGELOG
这一版
0.6.2。库 drission 和命令行 drs(crate drission-cli)同一号。
drs --version 打出 drs 0.6.2。没有 Rust 工具链时,下 GitHub Releases 或 GitCode 镜像里对应平台的 drs 压缩包。install/ 下有脚本,默认拉 Latest。
1. 当库用
Cargo.toml:
[]
= "0.6"
= { = "1", = ["full"] }
默认 feature 是 cdp,会找本机 Chrome / Edge / Brave / Chromium。
use *;
async
三个常用扩展(都在 CDP 上):
// 按名字隔离 Cookie / 代理 / UA。同名会复用,关 context 才拆。
let ctx = browser.context.await?;
let tab = ctx.new_tab.await?;
// 听、拦、假响应、改写、录 HAR。旧的 tab.listen() / intercept() 还能用。
let listen = tab.network.filter.method.listen.await?;
// 磁盘登录态。目录是 profiles/<id>/chrome,下次进程还能接着用。
let profiles = open?;
let lease = profiles.acquire.await?;
let browser = lease.launch.await?;
Agent 读页用无障碍大纲,不要喂整页 HTML:
let page = tab.agent;
let obs = page.observe.await?; // role + name,不是 outerHTML
page.find.click.await?;
page.type_text.await?;
page.wait_for.await?;
tab.wait.element.visible.timeout.await?;
let html = tab.capture.html.await?;
类型和方法:docs.rs/drission。仓库里可跑的例子:cargo run --example cdp_demo、cargo run --example cdp_context、cargo run --example cdp_agent。
2. 当 drs 用
drs 会在本机起一个 daemon,浏览器活在那个进程里。后面的命令都打给它。机器读加 --json。AI 怎么选命令见 docs/产品级CLI.md。
同一套 daemon 上还能:
open 仍等于 tab open。context / HAR replay / pdf / record 只支持 CDP。
接到 Cursor / Codex:
会往现有 MCP 配置里合并一项 drs,不覆盖别人的 server。默认 DRS_MCP_TOOLS=core:开页、snapshot、点按、截图,以及语义化的 browser_network / browser_console / browser_download。要 PDF / inspect / Context / 旧 network_*,把环境变量改成 browser 或 all 再重启 MCP。
怎么选命令:docs/产品级CLI.md。字段细节:docs/CLI.md(crates.io 打包不含 docs/)。
Feature
| Feature | 做什么 | 默认 |
|---|---|---|
cdp |
Chrome / Edge / Brave / Chromium / Electron | 开 |
camoufox |
Camoufox / Firefox(Juggler) | 关 |
ocr |
本地 OCR(tract) |
关 |
slider |
授权测试里的滑块缺口距离 | 关 |
signer |
内嵌 QuickJS | 关 |
impersonate |
HTTP 客户端 TLS 指纹,要 CMake | 关 |
= { = "0.6", = ["ocr"] }
# drission = { version = "0.6", default-features = false, features = ["camoufox"] }
两端差哪些能力见仓库 后端能力矩阵。
兼容性
| Rust | 1.85+,edition 2024 |
| 系统 | macOS / Linux / Windows |
| 浏览器 | 先找本机 Google Chrome,也认 Edge、Brave、Chromium、Electron |
| 无桌面 | headless;Linux 依赖见仓库「服务器部署」 |
文档(都在 GitHub,不进 crates.io 包)
- https://github.com/MageGojo/drission-rs — 源码、
docs/、examples/ - https://docs.rs/drission/0.6.2 — rustdoc
- CLI.md —
drs全命令 - CHANGELOG
负责任使用
浏览器自动化会碰到登录态、个人数据和能写库的操作。用之前至少确认:
- 只碰你有权用的系统和账号。
- 守法律、站点条款、
robots.txt、频率限制。 - 不绕过登录、验证码、付费墙,不冒充别人。
- 不采集没权处理的个人 / 机密 / 版权数据。
- 下单、删除这类动作放测试环境,并要人确认。
- profile、Cookie、截图别提交到 git。
可选的 OCR、图像分析、网络拦截不构成对任何第三方站点的授权。
安全问题按 SECURITY.md 私下报。
许可证
自定义 source-available、非商业许可,不是 OSI 开源许可。个人学习和合法非盈利用途要满足 LICENSE 全部条款。商用、付费再分发、当付费产品核心,先拿书面授权。