Obscura:不依赖 Chromium 的 Rust 无头浏览器
Obscura 是 Rust 无头浏览器,面向智能体与网页采集,内置 JavaScript,并支持 Puppeteer、Playwright 的 CDP 连接。
项目资料
GitHub Ecosystem- 许可证
- Apache-2.0
- 主语言
- Rust
- 星标
- 31,846
- 核查时间
- 2026-11-10
以上快照资料以核查当日为准,可能随版本或运营策略变化。
跑爬虫或网页智能体时,很多任务需要的是 DOM、文本和 JavaScript 结果,却得先部署一整套图形浏览器。Obscura 是一个用 Rust 编写的无头浏览器引擎:它不依赖 Chromium,内置 V8 执行网页 JavaScript,并通过 Chrome DevTools Protocol(CDP)兼容 Puppeteer 与 Playwright。GitHub 在 2026 年 11 月 10 日显示约 31,846 颗星,最新版本为 0.2.6。
核心功能
- 独立浏览器引擎:Obscura 用 Rust 实现浏览器内核并运行 V8,不要求系统另装 Chromium 或 Node.js。Cloudflare 工程团队称,Kitesurf 的首个原型受到 Obscura 启发,并尝试将它移植到 Workers;这是一次原型探索,不代表 Cloudflare 采用了当前完整引擎。它适合想把浏览器运行时随服务一起交付的采集与智能体项目;兼容性仍取决于自身实现。
- 命令行提取:
obscura fetch可输出页面标题、文本、HTML、链接、资源清单或 JavaScript 求值结果,也能将结果写入文件。对只需要页面内容的任务,可以不启动完整自动化框架。 - 动态页面控制:命令支持等待页面状态、设置导航超时、走 HTTP 或 SOCKS 代理,以及保存截图。README 还区分原始响应体与经过 DOM/JavaScript 层处理的结果,下载图片、JSON 等非 HTML 资源时可直接取原始内容。
- CDP 生态:运行
obscura serve后,客户端可通过 CDP 控制浏览器;项目提供 Puppeteer 和 Playwright 示例。对已有自动化脚本的团队,这比重写全部任务更容易试用,但仍应逐个验证页面和 API 的兼容情况。 - 可选渲染与隐身构建:release 同时提供带渲染与 no-render 的预编译包。README 也描述了反指纹和跟踪器拦截功能;这类模式不会让页面兼容性自动等同 Chrome,使用时仍须遵守目标网站的条款与授权范围。
典型使用场景
- 构建网页采集服务:从公开页面提取文本、链接或结构化结果,把浏览器引擎与采集程序部署在同一服务中。官方 Docker Hub 提供容器镜像;README 指出镜像以非 root 用户运行,挂载的存储目录需允许 UID 65532 写入。
- 给智能体提供页面能力:若智能体需要运行页面 JavaScript、读取 DOM 或截图,可先用 CLI 验证目标站点,再用 CDP 接入已有的 Puppeteer 或 Playwright 客户端。
- 在 ARM64 机器上做试验:最新 release 包含 aarch64 Linux 和 macOS 架构的压缩包。项目没有明确声明 Raspberry Pi 4B 认证支持,因此树莓派用户应把它当作待验证的 Linux ARM64 目标,而非官方保证的适配机型。
快速上手
下面沿用项目 README 的 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
./obscura fetch https://example.com --eval "document.title"
命令会打开页面并输出标题。若要看抓取到的链接,可将 --eval "document.title" 换成 README 给出的 --dump links;需要通过本机服务被多个客户端复用时,再启动 obscura serve。
性能数据
Obscura README 的自测表(本次核对于 2026 年 11 月 10 日)给出以下页面加载时间,并与 Chrome 作对照。README 在该表旁没有写明测试硬件、版本组合或测量方法,因此应把它视为项目方报告的初筛数据,而不是对任意网页的性能保证。
| README 场景 | Obscura | Chrome 对照 |
|---|---|---|
| 静态 HTML | 51 ms | 约 500 ms |
| JavaScript、XHR 与 fetch | 84 ms | 约 800 ms |
| 动态脚本 | 78 ms | 约 700 ms |
小结
如果你的采集或智能体工作流主要需要无界面的 JavaScript 浏览器,并希望通过 CDP 保留现有 Puppeteer/Playwright 客户端,Obscura 值得先拿一两个真实目标页面试跑。它用 Rust 实现引擎、提供 Linux ARM64 包和 Docker 镜像,Apache-2.0 许可,主要语言为 Rust。官方 README 宣称的内存和速度优势缺少这张表之外的测试条件;复杂网页的 API 覆盖、渲染行为和自动化兼容性也需要自行验证。若更看重按需渲染与 DOM 优先提取,可对照 Moli Browser;如果只需要网页采集管线,可看看 AnyCrawl,而 Playwright 则是可接入 Obscura 的自动化客户端之一。