首页 / 开源热榜 / Obscura / 使用教程

Obscura 中文教程:先跑通 fetch,再接 CDP

更新于 2026-09-23 · 约 8 分钟

Obscura 是一套独立的 Rust 无头浏览器引擎。它用 V8 执行 JavaScript,带自己的 DOM、渲染和网络层,并实现一部分 Chrome DevTools Protocol(CDP)。你可以直接用 CLI 抓取,也可以让 Puppeteer Core 或 Playwright Core 连接它。

当前版本:v0.2.3,源代码归档时间为 2026-09-20。官方二进制覆盖 Linux x86_64/ARM64、macOS Apple Silicon/Intel 和 Windows;Linux 包要求 glibc 2.35+。源码构建需要 Rust 1.75+。

1. 选对发行包

文件名同时区分 CPU、操作系统、是否带渲染和是否带 stealth transport。普通截图、PDF 或页面布局任务选择带 render 的默认包。并行 scrape 还需要 obscura-worker,解压后不要把它挪走。

./obscura --version
./obscura fetch https://example.com --eval "document.title"

官方 smoke test 的期望标题是 Example Domain。先用这种固定页面排除架构、glibc 和执行权限问题,再碰自己的复杂站点。

2. Docker 和控制端口

docker run -d --name obscura \
  -p 127.0.0.1:9222:9222 \
  -e OBSCURA_CDP_TOKEN="$(openssl rand -hex 32)" \
  h4ckf0r0day/obscura

绑定 127.0.0.1 可避免端口直接出现在所有网卡上。v0.2.3 对非回环 CDP/MCP 监听强制要求至少 32 字节 bearer token,还会拒绝异常 Host 和浏览器来源请求。token 不能写进镜像或公开日志。

3. 接入 Playwright 或 Puppeteer

启动 obscura serve --port 9222 后,Puppeteer 使用 browserWSEndpoint,Playwright 使用 chromium.connectOverCDP()。这只是协议兼容接口。遇到 iframe、扩展、复杂 CSS 或冷门 Web API 时,必须以目标页面实测为准。

授权边界:stealth、代理和反指纹能力只能用于你拥有或明确获准测试的目标。它们不能替你取得访问许可,也不能绕过登录、付费墙、robots、站点条款或个人数据保护要求。

4. 源码构建要求

cargo build --release -p obscura-cli --bins --features render

普通渲染构建使用 rustls。带 stealth transport 的构建还会编译 BoringSSL,并要求 CMake、Clang、libclang/LLVM 开发库。首次构建要从源码编译 V8,官方估计约五分钟,但机器和缓存会让耗时变化。

与 Chrome Headless 对比

Google 的 Chrome Headless 从 Chrome 112 起与有界面的 Chrome 共用浏览器代码,网页兼容性是它的主要优势。Obscura 是另一套引擎,以较小发行包和资源目标换取部分 CDP 兼容。页面行为不能出错时优先使用 Chrome Headless;能够维护回归样本、逐站确认时,再评估 Obscura 是否节省资源。

验证状态:本轮只核对官方 README、Installation Wiki、Security 与 v0.2.3 Release;没有下载二进制、执行 fetch、启动 CDP/MCP、连接 Playwright/Puppeteer,也没有复测官方性能和 stealth 数据。

这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。

先判断这个项目是否适合你

适合谁用

适合在自有站点或明确授权环境做页面渲染测试、截图、PDF、结构化提取及 Agent 浏览器实验。stealth 和代理功能不能用来规避目标网站的访问控制、robots、服务条款或法律限制。

采用建议

Obscura 适合在获授权目标上试验轻量浏览器自动化。先用固定的一组页面验证登录、表单、截图与网络行为,再决定是否替换 Chrome;控制端口绑定本机并配置 token,stealth 或代理不能改变合规责任。

原教程未展开的系统信息

核心功能

  • 独立浏览器引擎

    用 Rust 组织运行时,以 V8 执行 JavaScript,并提供 CSS 布局、截图、PDF 与网络请求能力,不依赖本机 Chrome。

常见问题

Obscura v0.2.3 运行时必须安装 Chrome 或 Node.js 吗?

官方预编译二进制不需要 Chrome 或 Node.js。用 JavaScript 编写 Puppeteer/Playwright 客户端时,客户端仍需自己的 Node.js 环境。

Obscura 的 Linux 二进制为什么提示 GLIBC_2.35 not found?

官方 Linux 包面向 Ubuntu 22.04 并要求 glibc 2.35+。旧系统可考虑官方 Docker 镜像,或按文档从源码构建。

Obscura 的 CDP 端口可以直接暴露到公网吗?

不应直接暴露。官方 Docker 示例绑定回环地址;v0.2.3 对非回环监听强制要求至少 32 字节 token。

Obscura 能完全替代 Chrome Headless 吗?

不能预先保证。Obscura 实现的是 CDP 与 Web Platform 子集,复杂页面、扩展功能和边缘行为必须逐站验证。