你是否曾为AI Agent在真实网页上“寸步难行”而头疼?Playwright刚打开就被Cloudflare拦下,Puppeteer一加载就触发Google的“检测到自动化行为”,连带整个任务链崩溃——这不是你的代码问题,而是现代反爬系统早已把常规无头浏览器当成了“标准靶子”。camofox-browser正是为此而生:它不是一个插件或脚本,而是一套基于深度改造Firefox内核的、开箱即用的反检测浏览器服务,让AI Agent真正像人类一样浏览网页,且无需修改一行业务逻辑代码。
核心功能
- 真·底层指纹欺骗(非JS层伪装):绕过Cloudflare、Google Search、Ticketmaster等主流反爬系统。它不是靠覆盖
navigator.userAgent或打补丁式拦截API调用,而是直接在Firefox C++引擎层篡改hardwareConcurrency、WebGL渲染器、AudioContext采样特征、屏幕DPR与可用尺寸——JavaScript运行前,所有指纹信号已被重写,彻底杜绝“伪装痕迹暴露自身是伪装者”的悖论。 - 稳定元素引用(e1/e2/e3)替代XPath/CSS选择器:解决动态网页中DOM结构频繁变动导致点击失败的问题。服务端在生成可访问性快照(accessibility snapshot)时,自动为每个可交互节点分配唯一、持久的短ID(如
e7),Agent只需发送{"action": "click", "ref": "e7"}即可精准操作,无需维护脆弱的选择器逻辑。 - 90%体积压缩的语义化快照:告别动辄数MB的原始HTML响应。它默认返回轻量级可访问性树(含角色、名称、状态、层级关系),仅保留AI理解页面所需的语义信息,体积平均缩小至原HTML的1/10,大幅提升LLM解析效率与Token利用率,特别适合长文本推理场景。
- 开箱即用的搜索宏指令:内置
@google_search "量子计算"、@youtube_search "Rust异步原理"、@reddit_subreddit "learnprogramming"等14+高频站点专用命令。Agent无需手动拼URL、处理分页或解析结果列表,一条指令直取结构化搜索结果,大幅降低任务编排复杂度。 - 免登录式YouTube字幕提取:调用
/youtube/transcript接口,输入视频URL即可返回完整SRT字幕文本(依赖yt-dlp本地安装)。全程无需YouTube API Key、不触发登录弹窗、不依赖Cookie状态,完美适配无头环境下的内容摘要与多模态训练需求。 - 会“呼吸”的资源管理:空闲超时自动关闭浏览器进程,内存常驻仅约40MB;支持按需懒启动新Tab,多个Agent可共享同一服务实例。实测可在$5/月的VPS甚至树莓派4B上稳定并发运行5–8个会话,显著降低AI基础设施成本。
- VNC可视化调试 + 存储导出:通过
/vnc端口接入noVNC界面,人工完成复杂登录(如短信验证、滑块)、保存登录态后,一键导出cookies+localStorage为JSON文件,供Agent后续会话复用,打通“人机协同”的最后一公里。 - 结构化数据抽取(Schema驱动):向
POST /tabs/:id/extract提交JSON Schema,声明字段与e1/e2等元素引用的映射关系(通过x-ref扩展),服务端自动从快照中提取并返回标准化JSON对象,省去正则/BeautifulSoup等传统解析环节。
技术亮点
- 双栈架构:Camoufox内核 + Node.js REST网关:底层并非魔改Chromium,而是基于Camoufox——一个从源码级fork Firefox并注入C++指纹混淆逻辑的严肃项目。这意味着所有反检测能力均发生在渲染引擎最底层,无法被前端JS探测,远超Puppeteer Stealth等依赖“劫持API返回值”的方案。
- 无状态设计 + 会话隔离:每个HTTP请求可指定独立
session_id,服务端自动分配隔离的Profile目录,确保Cookies、LocalStorage、IndexedDB完全独立。即使100个Agent并发访问同一域名,也不会出现登录态污染或跨会话追踪风险。 - 生产就绪的可观测性:全链路日志输出标准JSON格式,每条含唯一
request_id,便于ELK/Splunk聚合分析;OpenAPI 3.0规范自动生成(/openapi.json),Swagger UI交互文档(/docs)开箱即用,降低团队集成门槛。 - 渐进式降级策略:例如YouTube字幕功能,若未安装
yt-dlp,自动回退至浏览器内执行fetch()拉取播放页+解析字幕轨道,保证核心功能不中断;大页面快照超出阈值时,自动分片返回并提供offset参数支持分页获取,避免OOM崩溃。
适合哪些人用
它不是给普通爬虫工程师的“又一个工具”,而是为以下两类用户量身打造:
- AI Agent开发者:正在构建能自主订票、比价、监控舆情、抓取课程资料的智能体。例如:某教育科技公司用它驱动Agent每日抓取Coursera新课标题+简介+讲师信息,注入向量库;另一家电商Agent通过
@amazon_search宏自动比对竞品页面价格与库存变化,毫秒级触发告警。 - 低代码/自动化平台建设者:需要为非技术人员提供“网页操作积木块”。比如内部IT系统集成平台,将
camofox-browser封装为“打开网页→点击e3→截图→OCR识别”可视化流程节点,业务人员拖拽即可生成采购审批自动化流,无需懂Selector或反爬原理。
快速上手
三步启动服务(需Node.js 18+):
git clone https://github.com/jo-inc/camofox-browser && cd camofox-browser
npm install && npm start
首次使用建议先安装yt-dlp以启用高速字幕提取:
pip install yt-dlp # 或 brew install yt-dlp(macOS)
调用示例(用curl模拟Agent):
curl -X POST http://localhost:9377/tabs \\
-H "Content-Type: application/json" \\
-d '{"url": "https://google.com"}'
curl -X POST http://localhost:9377/tabs/{tabId}/search \\
-H "Content-Type: application/json" \\
-d '{"query": "@google_search \"开源浏览器项目\""}'
同类对比 / 注意事项
- vs Puppeteer Stealth / Playwright bypass插件:后者本质是“在Chrome上叠滤镜”,易被高级WAF识别为模式化行为;
camofox-browser是“换掉整张脸”,且基于Firefox生态,对WebRTC/Canvas等顽固指纹更彻底。 - vs Selenium + 自定义User-Agent:Selenium缺乏统一API抽象,每个操作(截图、上传、下载)需单独编码;本项目提供
/upload、/download、/screenshot等标准化端点,Agent只需HTTP通信。 - 注意事项:首次启动需下载Camoufox二进制(约180MB),国内网络建议配置
NODE_OPTIONS="--max_old_space_size=4096"防OOM;生产部署务必启用CAMOFOX_CRASH_REPORT_ENABLED=false关闭遥测(默认开启);代理IP需提前配置GeoIP数据库以实现自动时区/语言匹配。
项目信息
Stealth headless browser for AI agents — bypass Cloudflare, bot detection, and anti-scraping. Drop-in Puppeteer/Playwright replacement.
9.5k
今日 +285 stars today
Stars
1.0k
Forks
JavaScript
MIT
JavaScript | 9536 Star | MIT 开源协议 | GitHub 项目地址
如果你正在让AI真正“走进互联网”,而不是被一道道Cloudflare验证码挡在门外——那么camofox-browser不是备选,而是当前最接近生产级的隐身浏览器基础设施。




