爬虫#网页爬取#浏览器自动化

Obscura:不依赖 Chromium 的 Rust 无头浏览器

Obscura 是 Rust 无头浏览器,面向智能体与网页采集,内置 JavaScript,并支持 Puppeteer、Playwright 的 CDP 连接。

项目资料

GitHub Ecosystem
仓库地址github.com/h4ckf0r0day/obscura
许可证
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 场景ObscuraChrome 对照
静态 HTML51 ms约 500 ms
JavaScript、XHR 与 fetch84 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 的自动化客户端之一。