其他
通过 browse CLI…
在需要通过命令行以自然语言/脚本自动化浏览器完成网页导航、数据提取、表单填写、按钮点击、截图、CDP 事件监听或访问受保护站点时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 57/100 ×0.15
适用场景
通过 browse CLI 自动化网页浏特定
解决思路
- 运行 `which browse || npm install -g browse` 检查并安装 browse CLI。
- 若未显式指定环境标志,当 `BROWSERBASE_API_KEY` 已设置时,下一个会话默认使用 Browserbase;否则默认使用本地模式。
- 本地模式:`browse open <url> --local` 启动干净隔离的本地浏览器。
- 本地模式:`browse open <url> --auto-connect` 附加到已运行的可调试 Chrome;没有可调试 Chrome 时使用 `--local`。
- 本地模式:`browse open <url> --cdp <port|url>` 附加到指定 CDP target。
- 远程模式:`browse open <url> --remote` 启动 Browserbase 会话。
- 远程模式:不指定本地标志且设置了 `BROWSERBASE_API_KEY` 时,Browserbase 也是默认;它提供 Browserbase Identity、Verified browsers、自动 CAPTCHA 解决、住宅代理、会话持久化。
- 获取 Browserbase 凭据:访问 https://browserbase.com/settings。
- 需要可重复本地测试/干净状态时,执行 `browse open <url> --local`。
- 需要复用本地登录/cookies 时,执行 `browse open <url> --auto-connect`。
- 简单浏览(docs、wikis、public APIs)时,执行本地模式。
- 受保护站点(login walls、CAPTCHAs、anti-scraping)时,执行远程模式。
- 如果本地模式因 bot detection 或 access denied 失败,切换到远程模式。
- 导航:`browse open <url>` 转到 URL。
- 导航:`browse open <url> --local` 在干净本地浏览器中转到 URL。
- 导航:`browse open <url> --remote` 在 Browserbase 会话中转到 URL。
- 导航:`browse reload` 重新加载当前页面。
- 导航:`browse back` 后退。
- 导航:`browse forward` 前进。
- 页面状态:优先使用 `browse snapshot` 获取带元素 refs 的 accessibility tree(快、结构化)。
- 页面状态:`browse screenshot --path <path>` 截图(慢、消耗视觉 tokens);仅在需要视觉上下文时使用。
- 页面状态:`browse get url` 获取当前 URL。
- 页面状态:`browse get title` 获取页面标题。
- 页面状态:`browse get text <selector>` 获取文本内容;用 `body` 获取全部文本。
- 页面状态:`browse get html <selector>` 获取元素 HTML。
- 页面状态:`browse get markdown [selector]` 获取页面内容为 markdown;默认 body。
- 页面状态:`browse get value <selector>` 获取表单字段值。
- 交互:`browse click <ref>` 按 snapshot 中的 ref 点击元素(如 `@0-5`)。
- 交互:`browse type <text>` 向聚焦元素输入文本。
- 交互:`browse fill <selector> <value>` 填写输入框;需要按 Enter 时加 `--press-enter`。
- 交互:`browse select <selector> <values...>` 选择下拉选项。
- 交互:`browse upload <selector> <files...>` 上传文件到 `<input type="file">`。
- 交互:`browse press <key>` 按键(Enter、Tab、Escape、Cmd+A 等)。
- 交互:`browse mouse drag <fromX> <fromY> <toX> <toY>` 拖拽。
- 交互:`browse mouse scroll <x> <y> <deltaX> <deltaY>` 在坐标处滚动。
- 交互:`browse highlight <selector>` 高亮页面元素。
- 交互:`browse is visible <selector>` 检查元素是否可见。
- 交互:`browse is checked <selector>` 检查元素是否被选中。
- 交互:`browse wait <type> [arg]` 等待:load、selector、timeout。
- CDP 事件监听:`browse cdp <url|port>` 从任意 target 以 NDJSON 流式输出 CDP 事件。
- CDP:`browse cdp 9222` 附加到本地 Chrome 端口 9222。
- CDP:`browse cdp ws://localhost:9222/devtools/browser/...` 使用完整 WebSocket URL。
- CDP:`browse cdp <url> --domain Network` 只监听 Network 事件。
- CDP:`browse cdp <url> --domain Network --domain Console` 监听多个域。
- CDP:`browse cdp <url> --pretty` 人类可读输出。
- CDP:`browse cdp <url> > events.jsonl` 输出到文件。
- CDP:`browse cdp <url> | jq '.method'` 用 jq 过滤。
- CDP:`cdp` 直接连接任何 CDP target 并流式事件;不使用 daemon,是独立长运行进程;按 Ctrl+C 停止;默认域:Network、Console、Runtime、Log、Page。
- 会话管理:`browse stop` 停止浏览器 daemon。
- 会话管理:`browse status` 检查 daemon 状态和解析后的模式。
- 会话管理:`browse tab list` 列出所有打开的标签页。
- 会话管理:`browse tab switch <index-or-target-id>` 按索引或 target ID 切换标签页。
- 会话管理:`browse tab close [index-or-target-id]` 关闭标签页。
- 典型工作流:如果环境重要,在第一个 browser 命令上放 `--local`、`--remote`、`--auto-connect` 或 `--cdp <port|url>`。
- 典型工作流第 1 步:`browse open <url> --local` 或 `browse open <url> --remote` 导航到页面。
- 典型工作流第 2 步:`browse snapshot` 读取 accessibility tree,理解页面结构并获取元素 refs。
- 典型工作流第 3 步:用 `browse click <ref>` / `browse type <text>` / `browse fill <selector> <value>`,基于 snapshot 的 refs 交互。
- 典型工作流第 4 步:`browse snapshot` 确认操作生效。
- 典型工作流第 5 步:按需重复第 3-4 步。
- 典型工作流第 6 步:完成时 `browse stop` 关闭浏览器。
- 快速示例:依次运行 `browse open https://example.com`、`browse snapshot`、`browse click @0-5`、`browse get title`、`browse stop`。
- 最佳实践:有意识地选择本地策略:干净状态用 `browse open <url> --local`,已有本地凭据用 `--auto-connect`,受保护站点用 `--remote`。
- 最佳实践:交互前始终先 `browse open`。
- 最佳实践:用 `browse snapshot` 检查页面状态,它快且给出元素 refs。
- 最佳实践:只在需要视觉上下文时截图(布局检查、图片、调试)。
- 最佳实践:使用 snapshot 的 refs 点击/交互,例如 `browse click @0-5`。
- 最佳实践:完成时 `browse stop` 清理浏览器会话并清除环境覆盖。
- 故障排除:出现 “No active page” 时,运行 `browse stop`,再检查 `browse status`;若仍显示 running,用 `pkill -f "browse.*daemon"` 杀掉僵尸 daemon,然后重试 `browse open`。
- 故障排除:Chrome not found 时,安装 Chrome;若已有可调试 Chrome 运行,用 `browse open <url> --auto-connect`;或切换到 `browse open <url> --remote`。
- 故障排除:动作失败时,运行 `browse snapshot` 查看可用元素及其 refs。
- 故障排除:Browserbase 失败时,验证 API key 已设置。
- 切换到远程模式:检测到 CAPTCHAs(reCAPTCHA、hCaptcha、Turnstile)、bot detection 页面(“Checking your browser...”)、HTTP 403/429、本应有内容的页面为空,或用户要求时,切换到远程模式。
- 不要为简单站点(docs、wikis、public APIs、localhost)切换到远程。
- 环境标志在会话启动时应用;`browse stop` 后,下一次启动回退到基于环境变量的自动检测;daemon 运行时用 `browse status` 查看解析后的模式和 target。
- 详细示例见 EXAMPLES.md,API 参考见 REFERENCE.md。
适用边界 · 注意事项
- 没有安装 `browse` CLI,或本地模式下没有 Chrome/Chromium 且未配置可调试 Chrome,且未设置 `BROWSERBASE_API_KEY` 使用远程时,不适用。
- 简单站点(文档、wiki、公共 API、localhost)不需要切到远程/Browserbase,本地模式即可。
- 对需要绕过验证码、反爬、IP 限流、Cloudflare 或特定地理访问的受保护站点,不要仅依赖本地模式。