核心用法
stealthy-auto-browse 是一款面向高对抗性环境的浏览器自动化工具,采用 Camoufox(定制 Firefox 内核)实现零 Chrome DevTools Protocol (CDP) 暴露,彻底消除被检测的特征向量。通过 PyAutoGUI 模拟真实的操作系统级鼠标/键盘事件,配合持久化指纹管理,可成功通过 CreepJS、BrowserScan、Pixelscan 及 Cloudflare、DataDome、PerimeterX、Akamai 等主流反爬系统的检测。
两种运行模式
- HTTP API 模式:常驻 Docker 服务,支持 MCP 协议接入,提供完整的 RESTful 接口
- Script 模式:YAML 驱动的一次性容器,适合 CI/CD 流水线
双轨输入策略
| 模式 | 技术实现 | 检测风险 | 适用场景 |
|------|---------|---------|---------|
| System Input | PyAutoGUI OS 级事件 | 极低(无 DOM 痕迹) | 确认存在 bot 检测的高对抗站点 |
| Playwright Input | DOM 事件注入 | 可被高级检测识别 | 无防护或低风险站点,追求效率 |
关键工作流
1. goto 加载页面 → 2. get_text/get_interactive_elements 获取页面信息 → 3. 优先尝试 click/fill → 4. 遇阻时切换 system_click/system_type(需先 calibrate)→ 5. wait_for_* 条件等待 → 6. 结果提取
集群部署特性
- HAProxy 请求队列 + 粘性会话(
INSTANCEIDcookie) - Redis PubSub 实时同步 cookies,实现单点登录、全网认证
- 多实例模式下强制
run_script原子操作,避免状态竞争
显著优点
1. 检测通过率行业领先:零 CDP 信号 + 真实硬件输入模拟,通过主流扫描器检测率接近 100%
2. 架构灵活:单实例开发调试、集群生产部署、Script 批处理三种模式覆盖全生命周期
3. MCP 原生支持:可作为 Model Context Protocol 服务器接入 Claude Desktop 等 AI 客户端
4. 状态隔离设计:浏览器状态(DOM、JS、Storage)实例隔离,仅 cookies 按需同步
5. Page Loaders 机制:URL 触发自动化脚本,实现站点特定的导航后处理(如自动关闭 Cookie Banner)
潜在缺点与局限性
1. 资源消耗较高:相比 curl 或纯 Playwright,需运行完整浏览器容器,内存占用数百 MB 起步
2. 延迟敏感:system_click/system_type 需配合 calibrate 和人工化延迟,操作速度显著慢于 DOM 注入
3. 坐标依赖脆弱:高分辨率/缩放场景下需重新校准,容器内外显示参数变化会导致点击偏移
4. 集群模式功能受限:多实例时仅支持 run_script,单步调试困难
5. Firefox 生态限制:部分 Chrome-only 特性或扩展无法使用
适合人群
- 需要长期维持登录会话且避免封号的数据采集团队
- 对抗 Cloudflare Turnstile、DataDome 等企业级防护的安全研究者
- 构建 AI Agent 需要高保真浏览器交互的开发者(通过 MCP 接入)
- 已有 Playwright/Puppeteer 方案被检测拦截,需升级 stealth 能力的迁移用户
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 指纹漂移 | 持久化指纹若长期不变可能被行为分析标记 | 定期轮换指纹配置,模拟真实用户行为模式 |
| 时区/IP 不匹配 | 常见检测信号 | 确保容器 TZ 与代理出口 IP 地理位置一致 |
| 过度依赖 OS 输入 | 所有操作使用 `system_*` 会降低效率且仍可能因行为模式异常被识别 | 分层策略:Playwright 优先,System 兜底 |
| 集群状态不一致 | 非 cookie 状态(localStorage、DOM)实例隔离可能导致逻辑断裂 | 利用 `run_script` 原子性确保单实例内完成完整流程 |
| 容器逃逸 | Docker 特权模式或挂载敏感目录可能带来安全风险 | 遵循最小权限原则,避免 `-v /:/host` 等危险挂载 |