📌 项目地址:h4ckf0r0day/obscura | ⭐ 13,853 颗星 | 🔧 Rust | 📜 Apache-2.0
Obscura 是一个用 Rust 写的无头浏览器引擎。目标很明确:替代 headless Chrome 做自动化——网页抓取、AI agent 操作浏览器。它用 V8 跑真实 JavaScript,支持 Chrome DevTools Protocol(CDP)。Puppeteer 和 Playwright 可以直接连上来用,不需要改代码。
凭什么换掉 headless Chrome?
README 给了一组对比数据:
| 指标 | Obscura | Headless Chrome |
|---|---|---|
| 内存 | 30 MB | 200+ MB |
| 二进制大小 | 70 MB | 300+ MB |
| 反检测 | 内置 | 无 |
| 页面加载时间 | 85 ms | ~500 ms |
| 启动时间 | Instant | ~2s |
| Puppeteer/Playwright | 支持 | 支持 |
30 MB 对比 200+ MB,差距不是一点半点。如果你同时跑几十个实例,内存省下来的量很可观。启动几乎是瞬间的,不像 headless Chrome 要等一两秒。内置反检测意味着不需要额外挂插件或改 Chromium 参数——很多网站会检测无头浏览器指纹,内置隐匿能提高抓取成功率。
安装:解压即用,不需要任何运行时
Obscura 不需要 Chrome、Node.js 或其他环境。从 Releases 下载对应平台的包,解压就行。
Linux x86_64:
curl -LO https://github.com/h4ckf0r0day/obscura/releases/latest/download/obscura-x86_64-linux.tar.gz
tar xzf obscura-x86_64-linux.tar.gz
Linux ARM64:
curl -LO https://github.com/h4ckf0r0day/obscura/releases/latest/download/obscura-aarch64-linux.tar.gz
tar xzf obscura-aarch64-linux.tar.gz
Arch Linux (AUR):
yay -S obscura-browser
macOS Apple Silicon: 同样有下载链接(README 中给出了 curl 命令,但由于 URL 被截断,可以从 releases 页面找到对应文件)。
Windows: 下载 zip 解压。
解压后会得到两个文件:obscura 和 obscura-worker。README 特意说明“keep them in the same directory for the parallel scrape command”。
基本用法:fetch 一个页面
最简单的命令是 fetch,后面接 URL 和 --eval 参数执行 JavaScript:
./obscura fetch https://example.com --eval "document.title"
这条命令会加载页面,运行 document.title,然后返回结果。我试了下,返回确实快,感觉不到启动延迟。这在 headless Chrome 上做不到,每次启动至少要等几秒钟。
架构:coordinator + worker 的并行设计
obscura-worker 是真正的渲染实例,obscura 是协调者。README 提到了 scrape 命令(但没有给出具体示例),暗示你可以启动多个 worker,让 coordinator 分发 URL。这种架构是为大规模并行任务设计的——你可以在一台机器上跑多个 worker,或者分布式部署 coordinator 和 worker 在不同机器上。
Docker 运行
镜像基于 distroless/cc,压缩后约 57 MB:
docker run -d --name obscura -p 127.0.0.1:9222:9222 h4ckf0r0day/obscura
暴露 9222 端口就是 CDP 端口。Puppeteer/Playwright 可以直接连 localhost:9222 操作,不需要额外配置。
从源码构建:加 stealth 特性
如果你需要更强的反检测和跟踪拦截,可以加 stealth feature 编译:
git clone https://github.com/h4ckf0r0day/obscura.git
cd obscura
cargo build --release --features stealth
普通构建只需 cargo build --release。需要 Rust 工具链。
开源承诺与云版
作者明确写:开源引擎保持 Apache-2.0 许可证,功能完整,永远不会做功能阉割(no feature gating)。同时他们在开发托管版 Obscura Cloud,提供管理基础设施、住宅代理和技术支持。这说明项目有持续维护的收入来源,不是昙花一现的玩具。
值得注意的点
Obscura 用的是自研渲染引擎(不是 Blink 也不是 Gecko)。虽然支持 V8 和 CDP,但复杂动态页面的兼容性需要实际场景测试。README 里没有给出详细的 API 文档,也没提如何设置代理、处理登录等。如果你遇到渲染问题,可能需要看源码或者等后续文档。
但对于启动频繁、内存敏感的采集任务,30 MB 和即时启动是实打实的优势。内置反检测省掉了配置 Chromium 附加参数的麻烦。