后端与接口
需要把浏览器自动化部署为 Browserbase 云端…
用 browse CLI 创建、开发、测试并发布 Browserbase Functions,把 Playwright 浏览器自动化部署到云端按计划或 webhook 执行。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要把浏览器自动化部署为 Browser特定
解决思路
- 从 https://browserbase.com/settings 获取 Browserbase API key。
- 执行 `export BROWSERBASE_API_KEY="your_api_key"` 设置环境变量。
- 执行 `browse functions init my-function` 初始化函数项目。
- 执行 `cd my-function` 进入项目目录。
- 初始化会创建 package.json、index.ts 和 .env。
- 执行 `echo "BROWSERBASE_API_KEY=$BROWSERBASE_API_KEY" >> .env` 把凭据写入 .env。
- 执行 `pnpm install` 安装依赖。
- 在 index.ts 中从 @browserbasehq/sdk-functions 导入 defineFn,从 playwright-core 导入 chromium。
- 用 `defineFn("my-function", async (context) => { ... })` 定义函数。
- 从 context 解构出 session 和 params。
- 用 `chromium.connectOverCDP(session.connectUrl)` 连接浏览器。
- 用 `browser.contexts()[0]!.pages()[0]!` 获取 page。
- 用 `await page.goto(params.url || "https://example.com")` 执行导航。
- 用 `const title = await page.title()` 读取页面标题。
- 返回 JSON 可序列化结果,例如 `{ success: true, title }`。
- 使用关键对象 `context.session.connectUrl`:连接 Playwright 的 CDP endpoint。
- 使用关键对象 `context.params`:来自 invocation 的输入参数。
- 执行 `browse functions dev index.ts` 启动本地开发服务器。
- 本地开发服务器运行在 http://127.0.0.1:14113。
- 执行 `curl -X POST http://127.0.0.1:14113/v1/functions/my-function/invoke -H "Content-Type: application/json" -d '{"params": {"url": "https://news.ycombinator.com"}}'` 进行本地测试。
- 开发服务器会在文件变更时自动重载。
- 使用 `console.log()` 调试,输出会显示在终端。
- 执行 `browse functions publish index.ts` 部署到 Browserbase。
- 发布输出包含 Build ID 和 Function ID。
- 保存 Function ID,调用时需要它。
- 命令速查:`browse functions init <name>` 创建新项目;`browse functions dev <file>` 启动本地开发服务器;`browse functions publish <file>` 部署到 Browserbase。
- 需要调用示例、常见模式和故障排查时,查看 REFERENCE.md。
适用边界 · 注意事项
- 不想使用 Browserbase 云服务或无法提供 BROWSERBASE_API_KEY 时。
- 只需要本地一次性运行浏览器自动化,不需要定时/cron、webhook 或云端部署时。
- 无法使用 browse CLI、Node.js 18+、pnpm/npm 或 Playwright 时。