📄 其他未分类2026-06-30
Obscura:30MB Rust 无头浏览器,击败 Chrome,AI Agent 与爬虫的隐形核武器
原文链接Obscura:30MB Rust 无头浏览器,击败 Chrome,AI Agent 与爬虫的隐形核武器
原文链接:https://mp.weixin.qq.com/s/NUEohrYRxKTb2QJ6eHQ-yg 作者:小K / 如此才是 GitHub:https://github.com/h4ckf0r0day/obscura
摘要
纯 Rust 打造的无头浏览器引擎,30MB 内存、70MB 二进制、85ms 页面加载、瞬时启动。真实运行 V8 JavaScript,完整支持 Chrome DevTools Protocol(CDP),可直接替代 Puppeteer/Playwright。内置反检测(指纹随机化 + 3520 个 tracker 域名阻断),Chrome 的 1/7 内存、1/5 启动时间。
Obscura vs Chrome
| 指标 | Obscura | Chrome |
|---|---|---|
| 内存 | 30MB | 200MB+ |
| 二进制体积 | 70MB | 300MB+ |
| 页面加载 | 85ms | ~500ms |
| 启动速度 | 瞬时 | ~2s |
| 反检测 | 内置 | 需插件 |
三大核心能力
1. CLI 工具
obscura fetch <url> # 单页抓取,支持 JS 渲染、eval、selector 等待
obscura scrape <url1> <url2> # 多 URL 并行抓取,--concurrency 控制
obscura serve # 启动 CDP WebSocket 服务器
2. Stealth Mode(--stealth)
- 指纹随机化:每次会话随机 GPU/Screen/Canvas/Audio/Battery 指纹
- 真实 Chrome 模拟:userAgentData 高熵值、event.isTrusted=true、navigator.webdriver=undefined、Function.prototype.toString() 返回 [native code]
- Tracker Blocking:自动阻断 3520 个 analytics/ads/telemetry/fingerprinting 域名
3. CDP 全兼容
Puppeteer-core 和 playwright-core 通过 ws://127.0.0.1:9222 直连,零修改替代。已实现 Domain:
- Target / Page / Runtime / DOM / Network / Fetch / Storage / Input / LP(DOM 转 Markdown)
额外支持:--proxy(HTTP/SOCKS5)、--obey-robots、--wait-until、--workers 多进程、表单提交/登录/302/Cookie 原生支持。
安装
# macOS Apple Silicon
curl -LO https://github.com/h4ckf0r0day/obscura/releases/latest/download/obscura-aarch64-macos.tar.gz
tar xzf obscura-aarch64-macos.tar.gz
# 源码(含 Stealth)
cargo build --release --features stealth
架构设计
6 个 crate 的 Cargo Workspace:
| Crate | 职责 | 核心依赖 |
|---|---|---|
| obscura-dom | HTML/CSS/DOM 解析 | html5ever + selectors + cssparser |
| obscura-js | V8 引擎集成 | deno_core 0.350 |
| obscura-net | HTTP + tracker 阻断 | reqwest + wreq |
| obscura-browser | 胶水层,页面生命周期 | 协调 DOM + JS + Net |
| obscura-cdp | CDP WebSocket 服务器 | tokio-tungstenite |
| obscura-cli | 命令行入口 | clap |
关键设计:
- deno_core 直接嵌入 V8,无需 Chromium 渲染引擎 → 极低内存和体积
- 每个 Page 独立 JS 上下文,真实 JS 执行非模拟
- Stealth 编译时 feature 切换 + 运行时 per-session 随机化
- 无 Blink、无桌面特性、纯 Rust + Tokio 异步 → 瞬时启动
典型用途
- AI Agent 自主浏览(内存小,可并行跑几十个实例)
- 大规模网页抓取(反爬检测器看不见)
- 低资源环境下的无头浏览器
- Puppeteer/Playwright 的无缝轻量替代