SuperAPI AI 工具集

bb-browser

智能体与模型

查看项目

更新于 10-13 16:10

技能介绍

用途

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 拉取最新版本。