
🎯 学什么:把浏览器"搬上云端"——不需要在你自己的电脑上安装 Chrome,不需要 24 小时开着电脑,用 browser-use 的云服务随时随地创建和管理云端浏览器。自带住宅代理和 CAPTCHA 自动处理,让你的自动化不会被网站拦截。核心洞察:(1) 本地和云端是一套接口——
cloud connect之后的所有命令和 L5-18 完全相同,一行不改就能把本地脚本部署到云端;(2) 三种集成模式覆盖三个需求层次——Chat UI(人直接操作)、Subagent(任务进结果出)、Tools Integration(AI 自主调用);(3) CDP 直连让你用已有的 Playwright/Puppeteer 代码连接云端浏览器——不需要为了用 Cloud 全部重写。 💡 难易度:⭐⭐⭐ | ⏱️ 预计时间:35 分钟
1. 课程概览
💡 白话小课堂:L5-18 教你在自己电脑上操控浏览器——但你的电脑关机了,自动化就停了;你的 IP 被封了,就访问不了了;你要同时跑 10 个任务,电脑风扇开始疯狂嘶吼。Cloud 解决的就是这些问题——浏览器跑在云端的服务器上,你的电脑只是"遥控器"。
来源:browser-use 团队 / https://github.com/browser-use/browser-use
2. Cloud 解决了什么
2.1 本地浏览器的四大限制
本地浏览器的问题 → Cloud 的解决方案:
问题 1:需要安装 Chrome/Chromium
→ 团队每个人的电脑环境不同 → 兼容性噩梦
→ Cloud:零配置——无需安装任何浏览器,一行命令连接
问题 2:受限于本机性能
→ 跑 5 个并发任务电脑就卡
→ Cloud:弹性扩展——按需创建/销毁浏览器实例,不受本地性能限制
问题 3:难以水平扩展
→ 一台电脑最多开几个浏览器
→ Cloud:无限扩展——云端的资源池可以同时运行几十上百个实例
问题 4:IP 容易被封
→ 目标网站检测到"同一 IP 频繁访问" → 封 IP
→ Cloud:住宅代理 + 隐身浏览器——伪装成真实家庭的网络请求
2.2 Quick Start
# 认证
browser-use cloud login <api-key>
# 或设置环境变量:export BROWSER_USE_API_KEY=<key>
# 连接云浏览器(零配置)
browser-use cloud connect
# 自动创建云浏览器实例,连接 CDP,打印实时 URL
# 此后所有命令照常使用——和 L5-18 完全相同
browser-use open https://example.com
browser-use state
browser-use click 5
browser-use screenshot result.png
# 关闭连接(同时停止云浏览器)
browser-use close
3. 三种集成模式
3.1 模式对比
"厨房"比喻解释三种模式:
模式 1:Chat UI
→ 你对着厨师说"帮我炒个菜"
→ 你能实时看到他在做什么(实时浏览器视图 + 聊天界面)
→ 适合:手动探索、临时任务、调试
→ 特点:人在回路中——你观察并决定下一步
模式 2:Subagent(子代理)
→ 你对管家说"让厨房给我炒个菜端上来"
→ 你不关心谁炒、怎么炒、用什么锅
→ 适合:明确的自动化任务("爬取这 100 个页面的数据")
→ 特点:任务进 → 结果出——完全封装
模式 3:Tools Integration(工具集成)
→ 你给 AI 助手一个"厨房遥控器"
→ AI 自己决定什么时候用厨房、用厨房做什么
→ 适合:Agent 需要浏览器能力时按需调用
→ 特点:扩展已有 Agent 的能力边界
4. 高级特性
4.1 住宅代理与隐身浏览器
住宅代理(Residential Proxy):
问题:普通数据中心 IP 会被目标网站识别并封锁
方案:使用真实住宅 IP(看起来像普通家庭网络)
效果:绕过 IP 层面的反爬检测
适用:对 IP 敏感的网站(电商平台、金融网站)
隐身浏览器(Stealth Browser):
问题:Playwright/Puppeteer 的浏览器特征可被检测
方案:反指纹技术 + 自动 CAPTCHA 处理
效果:绕过行为层面的机器人检测
适用:有验证码或有浏览器指纹检测的网站
两者联合:
→ 住宅代理绕过 IP 封锁
→ 隐身浏览器绕过行为检测
→ 适合:对反自动化极度敏感的网站
4.2 CDP 直连
# CDP WebSocket 直连
wss://connect.browser-use.com?apiKey=KEY&proxyCountryCode=us
# 可用于连接 Playwright / Puppeteer / Selenium
# 把 Cloud 浏览器当作自己的本地浏览器用
CDP(Chrome DevTools Protocol)直连的最大价值:复用已有工具生态。如果你已经有写好的 Playwright 脚本,不需要为了用 Cloud 全部重写——把连接 URL 从 localhost:9222 换成 wss://connect.browser-use.com,其他代码不变。
4.3 Webhook
Webhook 解决"不需要轮询等待结果"的问题:
轮询模式:
→ 每隔 N 秒检查一次"任务完成了吗?"
→ 浪费资源 + 延迟高(任务在 N/2 秒前就完成了)
Webhook 模式:
→ 任务完成后 Cloud 主动推送结果到你指定的 URL
→ 零轮询开销 + 即时通知
适合场景:
→ 长时间运行的任务(爬取 100 个页面 → 可能 20 分钟)
→ 你可以提交任务后关电脑睡觉
→ 完成后 Webhook 推送到你的手机通知 / 钉钉 / Slack
5. 结构拆解:云端浏览器 Skill 模板
云端浏览器型 Skill 模板
核心特征
→ 管理对象 = 云端托管的浏览器自动化 → 核心原则 = 本地云端接口统一 + 三种集成模式 → 关键设计 = 住宅代理 + 隐身浏览器 + Webhook + CDP 直连
通用结构
Cloud Value Proposition(云端价值定位)
- 零配置:无需安装浏览器
- 弹性扩展:按需创建/销毁
- 住宅代理:反 IP 封锁
- 隐身浏览器:反行为检测
Three Integration Modes(三种集成模式)
- Chat UI:人在回路中(探索/调试)
- Subagent:任务封装(任务进→结果出)
- Tools Integration:AI 自主调用
Advanced Features(高级特性)
- CDP 直连:复用 Playwright/Puppeteer 代码
- Webhook:异步结果回调
- Workspaces:持久化文件存储
- Skills 市场:可复用的浏览器 Skill
Migration Path(迁移路径)
- 本地脚本 → cloud connect → 一行不改上线
- 先 --headed 调试 → 确认无误 → cloud connect
6. 电商案例:24 小时直播间状态监控
某抖音直播代运营团队(同时运营 8 个品牌直播间,涵盖美妆、服饰、母婴品类)的运营主管需要实时监控所有直播间的开播/下播状态和违规风险——平台抽查经常在凌晨发生,直播间被突然限流而团队无人知晓(都在睡觉),第二天才发现浪费了整晚的流量预算。
用 browser-use Cloud 部署了一个 24 小时直播间监控系统。
监控需求:
- 24 小时检测 8 个直播间是否在线(每 5 分钟轮询一次)
- 检测违规提示弹窗(如「直播间存在违规行为,当前仅自己可见」)
- 截取异常状态的屏幕截图作为证据留存
- 异常事件通过 Webhook 推送到钉钉群(直播中控值班群)
Cloud 方案:
#!/bin/bash
# 24 小时直播间监控 —— 部署在 browser-use Cloud 上
STREAMS=(
"https://live.douyin.com/938472819|品牌A-美妆"
"https://live.douyin.com/284910374|品牌B-服饰"
"https://live.douyin.com/729384650|品牌C-母婴"
"https://live.douyin.com/483920175|品牌D-美妆"
"https://live.douyin.com/102938475|品牌E-服饰"
"https://live.douyin.com/657483920|品牌F-母婴"
"https://live.douyin.com/384756102|品牌G-美妆"
"https://live.douyin.com/918273645|品牌H-服饰"
)
WEBHOOK_URL="https://hooks.dingtalk.com/xxx" # 钉钉群机器人
for stream in "${STREAMS[@]}"; do
URL=$(echo "$stream" | cut -d'|' -f1)
NAME=$(echo "$stream" | cut -d'|' -f2)
# Cloud connect(住宅代理避免被限流——模拟真实用户观看)
browser-use cloud connect --proxy-country cn
browser-use cookies import ~/cookies/douyin_viewer.json
browser-use open "$URL"
browser-use wait selector "div.live-room" # 等待直播间加载
browser-use state
# 检测:直播间是否在下播或违规状态
STATUS_TEXT=$(browser-use get text 1)
if echo "$STATUS_TEXT" | grep -q "直播已结束"; then
# 直播间下播 → Webhook 通知
curl -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d "{\"msgtype\":\"text\",\"text\":{\"content\":\"🔴 ${NAME} 已下播 | $(date '+%H:%M:%S')\"}}"
elif echo "$STATUS_TEXT" | grep -q "违规"; then
# 违规检测 → 截图留存 + 紧急通知
browser-use screenshot "/reports/alerts/${NAME}_violation_$(date +%Y%m%d_%H%M%S).png" --full
curl -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d "{\"msgtype\":\"text\",\"text\":{\"content\":\"⚠️ 紧急!${NAME} 检测到违规提示!截图已保存 | $(date '+%H:%M:%S')\"}}"
elif echo "$STATUS_TEXT" | grep -q "仅自己可见"; then
# 限流状态
browser-use screenshot "/reports/alerts/${NAME}_limited_$(date +%Y%m%d_%H%M%S).png" --full
curl -X POST "$WEBHOOK_URL" \
-H "Content-Type: application/json" \
-d "{\"msgtype\":\"text\",\"text\":{\"content\":\"⚠️ ${NAME} 可能被限流(仅自己可见)| $(date '+%H:%M:%S')\"}}"
else
# 正常在线 → 记录心跳日志
echo "[$(date '+%Y-%m-%d %H:%M:%S')] ${NAME} 在线正常" >> /var/log/stream_monitor.log
fi
browser-use close
done
部署为 cron job:
# 每 5 分钟轮询 8 个直播间
*/5 * * * * /scripts/monitor_streams.sh
效果:
- 首周运行发现 3 次凌晨违规:品牌 C(母婴)凌晨 2:17 被系统检测到「功效夸大」违规限流——Webhook 推送后,轮班中控在 2:22 收到通知并立即处理(下播→修改话术→5 分钟后重新开播),避免了流量的整晚浪费(该时段日均消耗 ¥3,200 千川预算,全浪费 = 月损失约 ¥96,000)
- 无漏检:24 小时 × 7 天 × 8 个直播间 = 1344 次/日状态检查,Cloud 零宕机(本地电脑无法做到——需要不关机 + 不重启 + 不断网)
- 团队睡眠质量改善:运营主管不再「睡前必须看一眼所有直播间」——异常状态自动推送,正常状态无需关注
🔑 启示:直播间监控的痛点不是「难」,而是「7×24 覆盖 + IP 不被封」——这两点恰好是 browser-use Cloud 的核心价值:云端运行 = 永不停机,住宅代理 + 隐身浏览器 = 不会被识别为监控脚本。Webhook 推送的设计关键:区分紧急度——违规/限流 = Webhook 钉钉,正常 = 只记日志不推送。如果每次检查都推送,8 个直播间 × 每 5 分钟 = 23,040 条/天,信息洪流中真正紧急的信号会被淹没。
7. 掌握检验
Q1:browser-use Cloud 相比本地浏览器解决了哪四个核心问题?
- A) 价格、速度、稳定性、兼容性
- B) 零配置(无需安装浏览器)、弹性扩展、住宅代理(反检测)、隐身浏览器(CAPTCHA 自动处理)
- C) 字体、颜色、布局、动画
- D) 登录、支付、通知、缓存
Q2:Cloud SDK 的 browser-use cloud connect 之后的操作与本地 CLI(CLI:命令行接口)有什么区别?
- A) 命令完全不同,需要重新学习
- B) 完全一样——同一个命令、同一个 workflow。本地和云端是一套接口
- C) 云端只支持截图,不支持交互
- D) 云端需要额外的认证参数每个命令
Q3:三种集成模式(Chat UI、Subagent、Tools Integration)分别适合什么场景?
Q4:住宅代理和隐身浏览器各自解决什么问题?在什么场景下两者都需要?
Q5:如果想把本地脚本迁移到 Cloud,迁移路径是什么?
Q6:CDP 直连的价值是什么?
- A) 它让 CDP 比 browser-use CLI 更快
- B) 它可以用于连接 Playwright/Puppeteer/Selenium——复用已有的自动化工具生态
- C) 它是 browser-use 唯一的连接方式
- D) 它只能用于截图
Q7:Webhook 功能解决什么问题?在什么场景下比轮询更有优势?
8. 答案
点击查看答案
Q1:B — (1) 零配置;(2) 弹性扩展;(3) 住宅代理——真实住宅 IP 绕过反爬;(4) 隐身浏览器——自动处理 CAPTCHA 和反指纹。
Q2:B — 这是 browser-use 设计最优雅的地方:本地和云端是一套接口。先在本地 --headed 调试验证,确认无误后把连接方式切到 cloud connect,其他命令一行不改。
Q3:参考答案 — Chat UI = 你对着厨师说"帮我炒个菜",能实时看到他做什么(手动探索);Subagent = 你对管家说"让厨房炒个菜端上来"(任务封装);Tools Integration = 给 AI 助手"厨房遥控器",AI 自己决定什么时候用(Agent 能力扩展)。
Q4:参考答案 — 住宅代理解决"IP 被封"问题(伪装成真实家庭网络);隐身浏览器解决"被识别为机器人"问题(反指纹 + 自动 CAPTCHA)。两者都需要的场景:对反自动化极度敏感的网站。
Q5:参考答案 — 在本地用 --headed 写脚本并调试 → 测试通过后把本地脚本的连接方式切换为 browser-use cloud connect → 其他命令一行不改 → 配置 cron job 定时运行。
Q6:B — CDP WebSocket 直连让你用已有的 Playwright/Puppeteer/Selenium 代码连接 Cloud 浏览器——把 Cloud 浏览器当作自己的浏览器用,复用已有工具生态。
Q7:参考答案 — Webhook 解决"不需要轮询等待结果"的问题。轮询每隔 N 秒检查一次,浪费资源且延迟高。Webhook 是任务完成后 Cloud 主动推送。适合长时间任务——你提交任务后可以关电脑,完成后 Webhook 推送到手机通知。
(5/7 通过)
9. 延伸阅读
- [[L5-18-浏览器自动化命令行|上一课:命令行浏览器操控]]
- [[L5-20-开源浏览器自动化|下一课:开源浏览器自动化]]

评论区
共 0 条评论