用途
bb-browser 用于让 AI Agent 通过 CDP(Chrome DevTools Protocol)连接到用户本机正在运行的 Chrome,在已登录的标签页中执行 fetch() 和 JavaScript。其定位是“你的浏览器就是 API”——不需要编写爬虫,也不需要 API Key,直接借助真实浏览器会话访问需要登录的网站并抓取数据。
典型使用场景是访问有登录限制的站点,以及从 Twitter/X、Reddit、GitHub、雪球等平台获取数据。当普通网页抓取返回 403 或被拦截时,可以改用 bb-browser。
主要能力
项目资料显示其当前版本为 v0.11.6,包含 143 个社区适配器、覆盖 36 个平台。主要能力包括:
- 数据抓取:通过
bb-browser site <平台>/<命令>调用适配器,支持--json结构化输出与--jq '<filter>'过滤。示例:bb-browser site xueqiu/hot-stock 5 --jq '.items[] | {name, changePercent}'。 - 适配器管理:
bb-browser site list列出全部适配器,bb-browser site info <adapter>查看参数、返回值与示例,bb-browser site update更新社区适配器,bb-browser site recommend根据历史推荐适配器。 - 浏览器控制(用于暂无适配器的站点):
open <url>打开网址、snapshot -i生成可访问性树快照、click @<ref>点击元素、fill @<ref> "text"填写输入框、eval "document.title"执行 JS、fetch <url> --json发起带登录态的 HTTP 请求、screenshot [path]截图。 - 实用工具命令:
tab list列出打开的标签页、status查看浏览器连接状态、network requests查看网络请求、console查看控制台输出。 - 自定义适配器:
bb-browser guide阅读适配器编写指南,每个适配器是单个 JS 文件,可提交到 bb-sites 仓库供社区使用。
资料中列举的部分适配器示例:雪球热门股票(site xueqiu/hot-stock 5,A 股情绪)、雪球个股行情(site xueqiu/stock <code>)、东方财富个股(site eastmoney/stock <code>)、东方财富新闻(site eastmoney/news)、Yahoo Finance 行情(site yahoo-finance/quote <ticker>)、Twitter 搜索(site twitter/search "BTC")、Twitter 用户推文(site twitter/tweets <user>)、Reddit(site reddit/subreddit <name> <limit>)、Hacker News 头条(site hackernews/top)、GitHub 仓库(site github/repo <owner>/<name>)、Google 搜索(site google/search "query")、百度搜索(site baidu/search "query")、知乎热榜(site zhihu/hot)、微博热搜(site weibo/hot)、36kr 快讯(site 36kr/newsflash)。资料称这些适配器可用于量化相关工作。
适配器分为三档:Tier 1 使用 Cookie fetch(约 1 秒,如 Reddit、GitHub、V2EX);Tier 2 使用 Bearer + CSRF token(约 3 秒,如 Twitter、知乎);Tier 3 使用 Webpack/Pinia 注入(约 10 秒,如 Twitter 搜索、小红书)。
使用方式
前置条件是 Chrome 必须以开启远程调试的方式运行。资料给出的启动命令:
macOS:/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
Linux:google-chrome --remote-debugging-port=9222
若已在运行需重启:pkill chrome && sleep 1 && google-chrome --remote-debugging-port=9222 &
随后用 bb-browser status 验证,应显示已连接的浏览器。
bb-browser 支持 --openclaw 标志以使用 OpenClaw 内置浏览器(无需 Chrome),例如:
bb-browser site reddit/hot --openclaw
bb-browser site xueqiu/hot-stock 5 --openclaw --json
资料特别提醒:bb-browser daemon 连接的是 OpenClaw 的隔离 Chrome(/tmp/agent-browser-chrome-...),与 OpenClaw browser tool 的 Chrome(~/.openclaw/browser/openclaw/user-data)是不同进程。关于 Twitter/X,其 ct0 cookie 是 HTTP-only,bb-browser 的 JavaScript 无法读取,但 OpenClaw browser tool(CDP 协议)可以;Twitter 数据抓取应使用专用脚本 scripts/twitter-scraper.py(Playwright 连接 OpenClaw browser CDP)。架构上,bb-browser daemon → 端口 9222 → 找到的第一个 Chrome(含 OpenClaw 的);Playwright 则直接连接 http://127.0.0.1:18800 → OpenClaw browser。
从 OpenClaw Agent 使用时,可在 agent exec 调用中进行快速数据抓取,例如:
bb-browser site twitter/search "BTC price" --json 2>&1
bb-browser site xueqiu/stock SH000001 --json 2>&1
对于有登录限制的站点,若 web_fetch 返回 403 或被拦截,可尝试:
bb-browser fetch "https://api.binance.me/api/v3/ticker/price?symbol=BTCUSDT" --json 2>&1
限制
资料明确列出以下限制:
- 不适用于批量抓取——面向单次/少量查询设计,不适合百万级记录。
- 存在速率限制——以真实账号身份操作,过度使用会导致封号风险。
- Chrome 必须保持开启——daemon 连接的是正在运行的 Chrome 实例。
- 不支持无头模式——其核心就是以真实浏览器会话进行操作。
故障排查
资料给出的排查对照:无浏览器连接时,以 --remote-debugging-port=9222 启动 Chrome;找不到标签页时,检查 bb-browser tab list,站点可能需要先打开;提示需要登录时,先在 Chrome 中手动登录该站点;--openclaw 失败时,确认 OpenClaw 浏览器可用(browser doctor);适配器缺失时,运行 bb-browser site update 拉取最新版本。