Expand description
§drission
一个 Rust 编写的浏览器自动化库,提供与 DrissionPage 一致的简洁语法。双后端:
- Chromium / CDP(默认,
--features cdp):驱动或接管 Chrome / Edge / Brave / Electron 应用。 - Camoufox / Firefox(Juggler)(
--features camoufox):反检测浏览器,附带自动过盾 / 吐环境 / 滑块识别 / 高并发池 / Session(HTTP)双模等全部高层能力(Page/WebPage/SessionPage…)。
默认构建 = 纯 CDP(最精简,不含任何 Camoufox 代码);要用 Camoufox 及其高层能力,请显式开
--features camoufox。两后端可同时开(--features camoufox,cdp)。
§设计目标
- 语法像 DP:
tab.get(url)、tab.ele("@id:kw")、ele.input(..)、ele.click()、tab.listen等。 - 高性能 / 并发:基于
tokio异步,多标签可并发操作。
§后端无关模块(始终编译)
codec:线格式编解码。protocol:连接 / 请求响应 / 事件。transport:管道 / WebSocket。locator:DP 风格元素定位语法解析。keys:键名常量与按键序列。net:网络监听 / 拦截共享数据类型。scrape:采集导出(CSV/JSON)。error:统一错误。
更新历史见
CHANGELOG.md; 设计与 API 映射文档见docs/。
Re-exports§
Modules§
- a11y
- 无障碍快照(后端无关):
AxNode/AxTree+ DOM 快照脚本 + CDP 扁平树重建。tab.ax_tree()(cdp 原生)/tab.ax_snapshot()(两后端)各自提供。 无障碍快照(Accessibility snapshot)的后端无关核心。 - browser
camoufox - Camoufox / Firefox(Juggler)后端 + 全部高层浏览器能力。仅
--features camoufox。 高层浏览器 API(DrissionPage 风格)。 - cdp
cdp - Chromium(Chrome/Edge/Brave/Electron)后端,经 CDP。默认开启(
default = ["cdp"])。 Chromium 后端(Chrome / Edge / Brave / Electron 应用),经 CDP(Chrome DevTools Protocol)。 - codec
- Juggler 线格式编解码。
- codegen
- 录制 → 生成代码(后端无关):
RecordedAction/RecordedScript+ 生成可运行 Rust / JSON。 录制采集见各后端(cdp:tab.recorder())。 录制 → 生成代码(Recorder / Codegen)的后端无关核心。 - envkit
camoufoxorcdp - 通用吐环境(dump browser env)后端无关核心:探针/env.js/导出工程/同构双跑验证 + 指纹回放。
两后端经
EnvBackend复用同一套逻辑;tab.dump_env()各自提供。 通用吐环境(dump browser env)后端无关核心。 - error
- 统一错误类型。
- fingerprint
- 读取浏览器实时指纹快照(后端无关):
tab.fingerprint_snapshot()一次性 dump UA/平台/语言/ 时区/屏幕/硬件/WebGL renderer/canvas 哈希。区别于cdp::fingerprint/pool::fingerprint(设定指纹)。 读取浏览器实时指纹快照(后端无关):一次性 dump 当前页面暴露给 JS 的核心指纹信号 —— UA / platform / 语言 / 时区 / 屏幕 /devicePixelRatio/ 硬件并发 / 设备内存 / WebGLUNMASKED_RENDERER/ canvas 像素哈希。 - human
- 拟人指针 + 图像视图(后端无关,点选/拖拽通用,不针对任何厂商)。
- keys
- 键名常量
Keys与按键序列输入KeyInput(对标 DrissionPage 的Keys与ele.input序列)。 - launcher
camoufox - Camoufox 启动选项 / 指纹配置 / 自动下载分发。仅
--features camoufox。 浏览器启动器:选项配置 + Camoufox 自动下载分发 + 进程启动(进程启动见后续process)。 - locator
- DrissionPage 风格的元素定位语法解析。
- net
- 后端无关的网络数据类型(监听 / 拦截共享)。
- ocr
ocr - 验证码 OCR(字符型验证码识别)。
feature = "ocr"。 - page
camoufox - 大道至简
Page一行起步门面(Camoufox 后端)。仅--features camoufox。 一行起步的浏览器页面门面 [Page] —— 对标 DrissionPage 的ChromiumPage,大道至简。 - pool
camoufoxorcdp - 高并发浏览器池 / 代理池 / 指纹池 / 断点续抓。
后端无关核心(
RetryPolicy/RotateStrategy/Checkpoint)对 camoufox / cdp 均编译;BrowserPool(camoufox)与ChromiumPool(cdp,见cdp::pool)各按后端提供。 高并发规模化采集:浏览器 worker 池 + 任务编排。 - prelude
- 常用类型一站式导入。
- protocol
- Juggler 协议层。
- scrape
- 采集导出助手:二维表 / 记录列表 → CSV / JSON。
- session
camoufox - HTTP Session(不开浏览器)+ 与浏览器 cookie 互通(Camoufox 后端)。仅
--features camoufox。 Session(HTTP)模式:不开浏览器,直接用 HTTP 请求 + 离线解析抓取——对标 DrissionPage 的 会话(Session)模式(SessionPage)。配合浏览器(Driver)模式即“Drission“双模: 用浏览器过盾/登录,把 cookie 灌给 Session,之后列表/翻页/详情全走 HTTP——省内存、省 CPU, 旧电脑也能高并发跑。 - static_
element - 静态(离线)元素解析(后端无关,基于
scraper):StaticElement的s_ele/s_eles/table。 静态元素 [StaticElement]:对应 DrissionPage 的“静态元素“(s_ele/s_eles)。 - transport
- 传输层:启动 Camoufox 子进程,并建立 Juggler 的 fd3/fd4 异步管道。
- web_
page camoufox - WebPage 双模门面(Driver/Session,Camoufox 后端)。仅
--features camoufox。 双模页面 [WebPage]:对标 DrissionPage 的WebPage—— 在 Driver(浏览器) 与 Session(HTTP) 两种模式间切换,共享 cookie。