ByteNoteByteNote

字节笔记本

2026年6月4日

Obscura:Rust 开源无头浏览器,AI 代理与网页爬虫利器

API中转
¥120

本文介绍 Obscura,一个用 Rust 编写的开源无头浏览器,专为 AI 代理和网页抓取而设计。该项目提供了轻量级、高反检测能力的浏览器引擎,帮助开发者在大规模网页自动化时替代 Chrome。

项目简介

Obscura 是一个开源的 headless browser 引擎,由 h4ckf0r0day 开发维护。截至目前,该项目在 GitHub 上已获得 14,000+ stars,主要使用 Rust 编写。

它通过嵌入 V8 引擎运行真实的 JavaScript,支持 Chrome DevTools Protocol(CDP),可以作为 Puppeteer 和 Playwright 的底层浏览器直接替换。

核心特性

  • 极致轻量:运行时内存仅 30 MB,二进制大小 70 MB,启动速度毫秒级
  • 真实 JS 引擎:嵌入 V8,支持完整 JavaScript 执行、DOM 操作和网络请求
  • CDP 兼容:实现 Chrome DevTools Protocol,无缝对接 Puppeteer/Playwright
  • 反检测指纹:内置会话级指纹随机化,隐藏 webdriver,返回真实 [native code]
  • 追踪器拦截:内置 3,520 个追踪器域名黑名单,自动拦截分析/广告脚本
  • 并行爬取:内置 scrape 命令,支持多 worker 并发爬取
  • AI Agent 集成:内置 MCP Server,可直接接入 Claude Desktop、Cursor 等 AI 工具
  • 跨平台:支持 Linux、macOS(ARM64/Intel)、Windows,提供 Docker 镜像

技术栈

  • Rust - 核心引擎
  • V8 JavaScript 引擎 - JavaScript 执行
  • Chrome DevTools Protocol - 远程调试与控制
  • WebSocket - CDP 通信

安装指南

下载预编译二进制

bash
# 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

# 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

Docker

bash
docker run -d --name obscura -p 127.0.0.1:9222:9222 h4ckf0r0day/obscura

源码编译

bash
git clone https://github.com/h4ckf0r0day/obscura.git
cd obscura
cargo build --release

# 开启反检测模式
cargo build --release --features stealth

快速开始

获取页面标题

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

提取所有链接

bash
obscura fetch https://example.com --dump links

启动 CDP 服务器

bash
obscura serve --port 9222 --stealth

使用示例

Puppeteer 接入

javascript
import puppeteer from 'puppeteer-core';

const browser = await puppeteer.connect({
  browserWSEndpoint: 'ws://127.0.0.1:9222/devtools/browser',
});

const page = await browser.newPage();
await page.goto('https://news.ycombinator.com');

const stories = await page.evaluate(() =>
  Array.from(document.querySelectorAll('.titleline > a'))
    .map(a => ({ title: a.textContent, url: a.href }))
);
console.log(stories);

Playwright 接入

javascript
import { chromium } from 'playwright-core';

const browser = await chromium.connectOverCDP({
  endpointURL: 'ws://127.0.0.1:9222',
});

const page = await browser.newContext().then(ctx => ctx.newPage());
await page.goto('https://en.wikipedia.org/wiki/Web_scraping');
console.log(await page.title());

AI 代理 MCP 集成

在 Claude Desktop 配置中添加:

json
{
  "mcpServers": {
    "obscura": {
      "command": "obscura",
      "args": ["mcp"]
    }
  }
}

性能对比

指标ObscuraHeadless Chrome
内存30 MB200+ MB
二进制大小70 MB300+ MB
页面加载85 ms~500 ms
启动速度毫秒级~2s

项目链接

分享: