主题
Browser Use 实战:让 Agent 操控浏览器
有些重复工作卡在浏览器里:每天登录自家后台导一张数据表、把一批信息逐条填进表单、在多个公开页面收集价格做对比表。RPA 工具要拖拽配置半天,页面一改版就废。browser-use(GitHub 95k+ Star)的思路不同:给 AI 一个真实浏览器,用自然语言描述任务,它自己看页面、点击、填表、提取。
本教程带你完成部署、跑通第一个任务,并划清哪些能交给 Agent、哪些永远不能。
1. 先看最终效果
text
任务:登录我们的运营后台,打开"每日数据"页面,
把 9 月的表格导出为 CSV,存到 ./reports/ 目录。
Agent 执行过程:
✓ 打开后台登录页,使用已保存的登录态进入
✓ 导航到"每日数据",切换到 9 月
✓ 点击导出,等待下载完成
✓ 保存至 reports/2026-09-daily.csv(312 KB)以前每天 10 分钟的例行操作,变成一句话。
2. 项目边界与验收标准
text
适合交给浏览器 Agent:
- 你自己账号里的例行操作(导报表、查状态、下载文件)
- 公开页面的信息收集与整理(比价、汇总成表格)
- 表单的机械填写(内容已由你确认)
永远不由 Agent 自动执行:
- 支付、下单、签约等资金操作
- 发帖、评论、群发等对外发布动作
- 验证码:遇到就停下交给人处理,不做任何绕过尝试
- 绕过网站风控、伪造身份、批量注册验收标准:
- [ ] 任务完成时有明确的成功证据(文件存在、截图、提取结果);
- [ ] 登录态只用于你自己的账号;
- [ ] Agent 每一步操作可回放(截图/录像),出错可定位;
- [ ] 遇到不确定的页面状态会停下来问人,而不是猜着点。
3. 安装与首次运行
需要 Python 3.11+ 和一个 OpenAI 兼容的模型接口(本地 Ollama 或中转站均可,见《本地 AI》):
bash
uv venv && source .venv/bin/activate
uv pip install browser-use
uvx browser-use init --template default --output my_agent.pymy_agent.py 里的模型配置改成你的端点(Base URL / API Key / 模型名,以服务商为准),然后跑第一个任务:
bash
python my_agent.py建议第一个任务选不涉及登录的公开页面,比如:
text
打开 https://news.ycombinator.com,收集当前首页前 10 条的
标题、分数和链接,保存为 JSON 文件。4. CLI 调试:看清 Agent 每一步
browser-use 自带交互式 CLI,是调试和建立信任的最好工具:
bash
browser-use open https://example.com # 打开网页
browser-use state # 列出当前可交互元素
browser-use click 5 # 点击第 5 个元素
browser-use type "Hello" # 输入文本
browser-use screenshot page.png # 截图存证
browser-use close第一次跑新任务时,先手动用 CLI 把关键路径走一遍,确认页面元素稳定,再交给 Agent 全自动执行。看得见每一步,才敢放手——这与《工作委托》的验收原则一致。
5. 复用登录态:只登一次
Agent 每次冷启动都要面对登录墙。最实用的解法是连接你本地已登录的 Chrome Profile,复用已有的会话:
python
from browser_use import Agent, Browser
browser = Browser.from_system_chrome(profile_directory="你的 Profile 路径")可用 Browser.list_chrome_profiles() 列出本机所有 Profile 再选择。安全上把这条红线刻死:
text
登录态文件 = 密码本身。
- 专用一个浏览器 Profile 跑自动化,不混用日常 Profile;
- 绝不把 Profile 目录提交进 Git 或上传网盘;
- 只连你自己账号;任务完成后如无持续需求,退出登录。6. 委托 Agent 编写自动化脚本
真实任务的脚本不必你写。browser-use 官方仓库提供了 Agents.md 接口文档,专门给编码 Agent 读——这是标准的"Agent 指挥 Agent"结构:编码 Agent 负责推理和写代码,browser-use 负责执行浏览器操作。
打开你的编码 Agent(Claude Code / Codex CLI 等),粘贴这份委托提示词:
text
参考 browser-use 项目根目录的 Agents.md(先用 uv pip install
browser-use 并克隆仓库,或直接阅读 GitHub 上的 Agents.md),
帮我写一个浏览器自动化脚本 daily_export.py:
任务:每天登录运营后台,进入"每日数据"页面,导出当月 CSV
到 ./reports/,文件名带日期。
要求:
1. 复用本地 Chrome Profile 的登录态(profile 路径从环境变量读);
2. 每一步操作后截图到 ./shots/,失败时保留现场;
3. 导出成功的判定标准:目标文件存在且大小 > 0,否则重试 1 次,
仍失败则退出码非 0 并打印最后一步截图路径;
4. 任务描述里明确:遇到验证码或异常页面立即停止,不做任何绕过;
5. 所有配置(URL、账号页面、目录)走环境变量,不硬编码。
最后给我运行方式和验收命令。人工闸门照旧:确认它写进了"验证码即停"和成功判定标准,再让它跑。
7. 真实案例参考
社区里已经跑通的三类任务,可以对照估算你的场景:
| 案例 | 任务 | 要点 |
|---|---|---|
| 后台例行导出 | 登录自家后台,定时导出数据表 | 复用登录态 + 文件存在性验收 |
| 求职申请表 | 上传简历、填写长表单 | 自定义工具注入文件、处理跨域 iframe |
| 比价收集 | 在多个公开电商页收集配置和价格,汇总推荐 | 无登录公开页面,输出结构化表格 |
共同点:操作可逆、结果可验证、账号是自己的。反过来,凡是不可逆(下单)、对外发布(发帖)的操作,都应保持在人工手里。
8. 故障与限制
- 页面改版:Agent 找不到元素而卡住。看截图定位,更新任务描述里的页面特征;高频改版的页面不适合自动化,先问《发现第一条工作流》里的稳定性问题;
- 验证码/风控页:停下交给人。不要尝试任何绕过方案——那既是技术深坑,也违反多数平台条款;
- 执行慢且贵:每一步都要截屏给模型看,token 消耗高于普通对话。把任务描述写具体(精确到页面名和按钮文字)能显著减少探索步数;
- 模型能力差异:不同模型操控浏览器的成功率差别很大,浏览器自动化是模型能力的放大器,模型越强越稳。
9. 完成标准
- [ ] 用 CLI 手动走通一遍目标页面的关键路径;
- [ ] 第一个公开页面任务全自动完成且产出可验证;
- [ ] 登录态跑在专用 Profile 里,且确认未进任何版本库;
- [ ] 委托脚本包含"验证码即停"和文件存在性验收;
- [ ] 连续 3 天定时任务成功,失败时有截图可定位。
想更进一步:把脚本挂进定时器,或接进《AI 周报生成器》当数据源;多条浏览器任务并行后,再评估是否值得升级托管方案。