本地跑 Playwright 的老问题:登录态一周过期一次,验证码偶尔弹出来,内存吃满、机器发烫。Browserbase Persist 把浏览器搬到云上,用「上下文(Context)」保存 cookies 和 localStorage,跨会话复用登录状态;验证码默认自动破解,会话默认录屏,长任务能开 keep-alive 断线续连。整包 15 kB,版本 v1.0.0,安装 145.6k、下载 29.6k,开发榜第 8。
它的架构很直接:底层是云端的 Chromium,通过 CDP WebSocket 远程控制,外面套一个 32.6 kB 的 Python 管理器脚本 browserbase_manager.py,把会话、上下文、录制、截图这些操作收成子命令。你要准备的东西只有两样:API Key 和 Project ID。
百度网盘下载:https://pan.baidu.com/s/14z5S086LwEp1D3PNQVB0kw?pwd=1e1q(提取码:1e1q)
通过网盘分享的文件:jamesfincher-browserbase-1.0.0.zip
链接: https://pan.baidu.com/s/14z5S086LwEp1D3PNQVB0kw?pwd=1e1q 提取码: 1e1q 复制这段内容后打开百度网盘手机App,操作更方便哦
一、基本信息
| 项目 | 内容 |
|---|---|
| 技能名称 | Browserbase Persist with captcha(browserbase-sessions) |
| 维护方 | jamesfincher(个人开发者,T3 来源) |
| 定位 | 云端浏览器会话管理:持久登录态 + 自动验证码 + 录屏 |
| 版本 | v1.0.0 |
| 社区数据 | 安装 145.6k · 下载 29.6k · 开发榜 #8 |
| 安全认证 | CLS 安全性认证 S 级(2026-07-10),无高危漏洞、依赖无已知 CVE |
| 运行环境 | Python 3 + playwright;BROWSERBASE_API_KEY + BROWSERBASE_PROJECT_ID |
| 会话上限 | 单会话最长 6 小时(21,600 秒),创建后 5 分钟内需连接 |
| 可选区域 | us-west-2 / us-east-1 / eu-central-1 / ap-southeast-1 |
| 包体大小 | 整包 15.0 kB(browserbase_manager.py 32.6 kB) |
| 下载安装 | jamesfincher-browserbase-1.0.0.zip(网盘,提取码 1e1q) |
| 标签 | browser-automation、web-scraping、cloud-browser、session-management、captcha-solving |
二、它解决什么问题
抓需要登录的页面,麻烦从来不在「抓」,在「登」。本地方案有三种常见死法:cookie 存本地文件,机器一换就失效;无头浏览器指纹被识别,登录直接跳验证;验证码弹出来,脚本停在那一行等人。
第二种损耗是资源。几十个并发浏览器实例,内存能吃掉一台 16G 的机器。笔记本跑一晚,第二天风扇还在响。想扩到 50 并发,就得先买机器。
第三种是调试。云端跑挂了,你只有一段日志,看不到当时的页面长什么样。录屏能解决这个问题——但本地录制又要占硬盘。
它的思路一句话:把浏览器变成按需申请的远程资源,登录态存成可复用的「上下文」,验证码交给平台处理。
三、核心功能
3.1 上下文:把登录态存下来反复用
核心概念是 Context。它不是简单的 cookie 文件,而是浏览器的一整套持久化状态:cookies、localStorage、IndexedDB。用法分三步:
| 步骤 | 命令 | 说明 |
|---|---|---|
| 建上下文 | create-context --name github |
创建一个命名容器,初始为空 |
| 带持久化开会话 | create --context-id github --persist |
登录后关闭时把状态写回上下文 |
| 下次复用 | 同样的 --context-id |
直接是登录态,不用重登 |
关键在 --persist。不加这个参数,会话关闭时状态就丢了,下次还是白板。这是最容易踩的坑——命令行跑通了、登录也成功了,第二天发现还得重登,就是因为漏了它。
3.2 自动验证码与录屏
两个默认开启的能力:
- 验证码自动破解:Browserbase 平台侧处理,登录流里的图形码、滑块、Turnstile 这类,通常能过。不想要就
--no-solve-captchas。 - 会话录屏:默认录 WebM,事后可下载。用于审计、复盘、给同事演示都行。不想要就
--no-record。
录屏这个默认值值得注意:它意味着你所有的操作都会被记录下来存在第三方云上。敏感操作一定要显式关掉,否则等于给自己留了一份带凭证的监控录像。
3.3 keep-alive 与断线重连
长任务最怕中途掉线。加 --keep-alive --timeout 3600,会话在网络抖动后会保留,等你重连。代价是会话不会自动结束,必须手动 terminate,否则一直计费。
这一点要写进流程:开 keep-alive 的任务,收尾必须有 terminate 这一步。忘了就是持续烧钱。
3.4 运维能力:区域、代理、live-url
支持四个区域部署,us-west-2 是默认。做地域相关抓取时,选对区域能显著降低被风控的概率。代理支持开关式配置(proxies: true),广告拦截、视口尺寸这些也都能调。
live-url 是个实用功能:拿到一个实时调试链接,用本地浏览器看云端会话正在干什么。排查「为什么这个选择器点不到」这类问题时,比读日志快十倍。
四、真正有价值的地方
登录态持久化做对了层次。不是存 cookie 文件,而是整个浏览器上下文。这对现代站点很关键——很多站点的登录态不只靠 cookie,还有 localStorage 里的 token。只存 cookie 的方案在 SPA 站点上经常失效。
验证码交给平台是合理分工。自己搭打码服务,成本高、维护烦、还有合规风险。让云浏览器厂商处理,是这类需求最省事的解法。
录屏默认开启,符合调试直觉。云端执行最大的痛点是「看不见」。有录像,出问题能回放,这比任何日志都直观。代价是隐私,所以「默认开、可关」是合理的默认值。
零本地资源占用。并发数不再受本机内存限制,只受预算限制。对需要临时扩到几十并发的场景,这个弹性很值钱。
API 层设计干净。manager 脚本把会话生命周期收成一组子命令,返回结构化 JSON,方便被 Agent 或脚本调用。32.6 kB 的体量说明它没做过度封装。
五、绕不开的问题
要花钱。Browserbase 是商业服务,按会话时长计费。跑得越多越贵,长任务尤其明显。它省的是运维成本,不是现金成本——这笔账要先算清楚。
冷启动有窗口期。会话创建后 5 分钟内必须建立连接,否则作废。编排多会话时,这个时间窗要算进调度逻辑。
同一上下文不能并发。官方建议单上下文单会话。想跑十个并发任务,就得分十个上下文,登录态也要维护十份。这个限制在批量场景里很麻烦。
持久化有几秒延迟。会话关闭时状态写回上下文需要时间,紧接着开新会话可能读到旧状态。快速连续操作时会踩到。
云端调试抽象度高。本地 Playwright 可以断点、可以看 DOM 树;云端只能靠 live-url 和录屏。复杂交互的调试效率会下降。
T3 来源。个人维护,没有组织级 SLA。核心依赖是 Browserbase 平台本身,脚本这层反而简单。
还有一个容易被忽略的细节:会话是可计费的资源,但它的「创建」和「连接」是两个动作。创建成功不等于连上了,5 分钟内没连上就作废,而作废的会话在部分套餐里仍然计费。编排多会话时,把连接动作紧跟在创建后面,别中间插别的步骤,这条能省掉一笔看不见的开销。同理,异常分支也要有 terminate:抛异常、超时、被中断,每条路径都得把会话关掉,否则最贵的账单往往来自「以为已经关了」的那几次。把 terminate 做成统一收口函数,所有出口都调它,比在每个分支里手动写一遍可靠。写完做个简单的自测:故意制造一次超时,看会话有没有真的被回收。
六、官方风险表与解读
| 风险 | 级别 | 说明 | 缓解建议 |
|---|---|---|---|
| 任意 JS 执行 | 高 | execute-js 可运行用户传入的代码 |
仅在可信站点使用,脚本人工审查 |
| API 密钥泄露 | 高 | Key 泄露导致账户被盗用、产生费用 | 定期轮换,不入代码仓库 |
| 会话录制泄露 | 中 | 录屏可能包含账号、密码、个人信息 | 敏感操作加 --no-record,定期清理 |
| 依赖漂移 | 中 | >= 版本约束可能引入 breaking change |
生产环境锁具体版本 |
| 服务可用性 | 中 | 依赖平台 SLA,中断即不可用 | 关键业务设计降级路径 |
静态与动态分析都没查出高危漏洞,S 级评价站得住。真正的风险在使用方式上:录屏开着跑登录流程、Key 写进 git、随手 execute-js 执行网页里的字符串——这三件事是自己给自己挖坑。
一条实用纪律:涉及账号密码的会话,一律 --no-record;涉及支付的会话,用完立刻 terminate 并删除上下文。
3.5 成本结构与并发规划
云端浏览器的账要按「会话小时」算,不是按请求数。这个计费方式决定了优化方向:不是减少请求,而是缩短会话存活时间和减少并发峰值。
单任务成本。一次抓取通常几分钟,成本很低。真正贵的是「开着不关」——调试时忘了 terminate,一个会话挂三小时,比跑一百次短任务还贵。养成「任务结束立刻关」的习惯,成本能降一个量级。
并发规划。受两条约束:套餐的会话配额,和「单上下文单会话」的限制。假设要跑 20 并发,就得准备 20 个上下文,每个都要独立维护登录态。这意味着登录这一步的成本会乘以 20——第一次搭建时最能体会。
区域选择的隐性成本。默认 us-west-2,如果目标站点在亚洲,跨太平洋延迟会让每个操作都慢几百毫秒。切到 ap-southeast-1 能明显提速,而计费不变——这是纯收益的优化,很多人漏掉。
录制也占资源。默认录屏会持续写视频流,长会话下文件不小。不需要审计的场景关掉,能省带宽也能省存储。
一句话总结:按「会话时长 × 并发数」估预算,把 terminate 写进每一个代码路径,包括异常分支。
七、适合谁,不适合谁
| 类型 | 是否适合 | 理由 |
|---|---|---|
| 抓登录后内容的工程师 | 适合 | 上下文持久化省掉反复登录 |
| 跨会话长期研究 | 适合 | keep-alive + 上下文复用,适合监测类任务 |
| 需要录屏追溯的 QA 团队 | 适合 | 默认录屏,天然带审计材料 |
| 预算敏感的个人项目 | 不适合 | 按会话计费,长期跑成本不低 |
| 需高并发的批量抓取 | 谨慎 | 单上下文单会话,并发要拆多份登录态 |
| 离线 / 内网环境 | 不适合 | 完全依赖云端,无离线能力 |
八、落地路径
- 开通账号。browserbase.com 注册,Settings 取 API Key(
bb_live_开头)与 Project ID(UUID)。 - 装依赖。
pip install -r requirements.txt,再playwright install chromium。 - 跑自检。
browserbase_manager.py setup,全流程跑通会返回status: success,失败信息会指出具体环节。 - 建第一个上下文。挑一个你常登的站点,
create-context --name <site>。 - 走一次带 persist 的登录。登录成功后 terminate,再新建会话验证是否免登录。
- 上生产前收尾。给每个会话加 terminate 逻辑、给敏感站点加
--no-record、把 Key 放进环境变量。
九、文件构成与安装
| 文件 | 大小 | 作用 |
|---|---|---|
scripts/browserbase_manager.py |
32.6 kB | 全部子命令:setup / context / session / 截图 / 录制 / JS 执行 |
SKILL.md |
9.8 kB | 技能说明与命令清单 |
references/api-quick-ref.md |
2.2 kB | REST 端点速查(sessions / contexts / recording) |
README.md |
3.9 kB | 安装与快速上手 |
skill-card.md |
2.8 kB | 市场展示卡片 |
scripts/requirements.txt |
<0.1 kB | 依赖清单(browserbase SDK、playwright) |
安装三步:装依赖、装 Chromium、跑 setup 自检。地图很快——如果 setup 全绿,后面基本就是拼参数的事。
十、常见问题
为什么第二天又要重新登录?
八成是漏了 --persist。没有它,会话关闭时状态直接丢弃。检查命令里有没有这个参数。
会话能跑多久?
单会话最长 6 小时。超过会被强制终止,任务要设计成可分片续跑的。
并发能开到多少?
理论受套餐限制,实践受「单上下文单会话」约束。要并发就得建多个上下文,各自维护登录态。
录屏存在哪?
Browserbase 云端,可通过 GET /v1/sessions/{id}/recording 下载 WebM。含敏感信息的会话建议直接 --no-record。
连接超时了怎么救?
会话创建后 5 分钟内没连上就作废,只能重建。编排时把建立连接放在最前面,别先做别的准备工作。
能执行自定义 JS 吗?
能,execute-js。但这是高危能力,会把传入的字符串当代码跑。只对可信站点用,且脚本要人工看过。
和本地 Playwright 比,什么时候该用哪个?
需要登录态复用、需要验证码处理、需要临时扩容、需要录屏——用云。需要精细调试、离线运行、零成本——用本地。两者可以混用,代码层都是 Playwright API。
有免费额度吗?
Browserbase 提供试用额度,但长期使用是付费服务。具体额度按套餐政策变化,注册后在控制台能看到。评估时按「每小时会话能跑多少任务」算单位成本,比看单价直观。
上下文会过期吗?
平台侧上下文不会主动过期,但里面的 cookie 会按站点策略失效。所以你仍然需要「定期重新登录」的机制,只是频率从每天降到每月甚至更低。
和 Playwright 自建集群比呢?
自建 50 并发要一批机器、一套调度、一套反检测方案,还得自己处理 IP 池。云服务把这些打包成 API,代价是单价更高、控制力更弱。任务量大到一定规模,自建更划算;量小又不想运维,云更省心。
能做文件下载吗?
能。会话有 downloads 端点,可以取回下载目录的打包文件。但大文件走云端中转会比较慢,超过几十兆建议直接在页面里拿直链。
多个任务能共用一个上下文吗?
不建议。官方建议单上下文单会话,并发复用会导致 cookie 状态互相覆盖,登录态容易坏。真要多任务,按任务分上下文,或者串行排队。
录屏文件能直接给人看吗?
能,但先检查内容。录屏会把你所有的点击、输入、页面跳转都记下来,包括填进表单的账号密码。对外分享前务必过一遍,涉及敏感信息的场景干脆关掉录制。
结语
Browserbase Persist 解决的是「浏览器自动化进入生产」时最现实的三道坎:登录态、验证码、资源。它的答案不新鲜——把浏览器搬到云上——但执行得干净:上下文概念清晰,命令收敛,自检能跑通。
代价是钱和依赖性。按会话计费意味着它不适合长期挂着不动;完全依赖云端意味着它不适合内网和离线场景。用它之前先算一笔账:你省下的运维时间,值不值这些会话费。值,就上;不值,本地 Playwright 加个 cookie 加密存储也能凑合。
还有一个实操细节:云端浏览器的出口 IP 与地区会直接影响目标站点的可见内容,做地域相关采集时先确认会话配置。另外会话是有成本的,跑完记得主动释放,别让闲置会话在后台一直计费——这一点比本地 Playwright 更需要自觉。
通过网盘分享的文件:jamesfincher-browserbase-1.0.0.zip
链接: https://pan.baidu.com/s/14z5S086LwEp1D3PNQVB0kw?pwd=1e1q 提取码: 1e1q 复制这段内容后打开百度网盘手机App,操作更方便哦
云端浏览器 会话持久化 验证码破解 网页抓取 Browserbase
百度网盘下载:https://pan.baidu.com/s/14z5S086LwEp1D3PNQVB0kw?pwd=1e1q(提取码:1e1q)















暂无评论内容