用途:Obscura 是 Rust 无头浏览器,内置反指纹与 CDP 服务器,定位在 Lightpanda(有 CDP 无隐身)与 Scrapling(有隐身无 CDP)之间,适合隐身 CDP 自动化、批量隐身抓取和低内存(约 30MB)无头场景。
主要能力:支持隐身抓取、并行批量抓取、启动 CDP 服务器,并可通过代理链增强防护。CDP 域覆盖见 references/cdp-coverage.md,含非标准 LP.getMarkdown 用于 DOM 转 Markdown。
用法:隐身抓取示例:obscura fetch --stealth --quiet https://example.com --eval "document.title";并行批量:obscura scrape URL1 URL2 URL3 --concurrency 25 --format json;启动 CDP 服务器:obscura serve --port 9224 --stealth。经 Proxelar 链式代理时,--proxy 是全局标志,需放在子命令前:obscura --proxy http://127.0.0.1:8080 serve --port 9224 --stealth。Puppeteer 连接 browserWSEndpoint: "ws://127.0.0.1:9224/devtools/browser";Playwright 连接 endpointURL: "ws://127.0.0.1:9224"。辅助脚本 scripts/obscura_serve.sh 可在 9224 启动 CDP 服务器,带清理陷阱、PID 文件与可选 --with-proxelar。
限制与注意:端口 9224 是约定而非默认,二进制默认 9222(Chrome 端口),务必显式传 --port 9224;--stealth 默认关闭,需显式开启;--proxy 为全局标志,须置于 fetch/serve/scrape 之前;--quiet 抑制横幅,管道输出时使用;WebSocket 路径与 Lightpanda 不同(Obscura 为 /devtools/browser);二进制为临时签名、无公证,SHA-256 记录在 ~/tools/obscura/obscura.sha256,更新时需校验。