用 browser-use 让 AI 自动操控浏览器:抓取数据、填表单、自动发布
你有没有过这种崩溃瞬间:老板让你"把竞品官网的价格都扒下来做个表",你吭哧吭哧一个个页面点、复制、粘贴,半小时才弄了三行。browser-use 就是来干掉这种重复劳动的——它 GitHub 上已经攒了近两万 Star,一句话理解:你用自然语言描述"想干啥",AI Agent 自己打开浏览器、看页面、点按钮、填表单、把结果抓回来。本教程从装环境到跑通一个真实案例,一步步带你上手。
先搞懂:browser-use 是什么?
把浏览器想象成一个"工位",传统爬虫是你雇人写规则"第几个 div 里的文字",规则一变全崩。browser-use 则是请了一位会看屏幕的 AI 同事:它实时读取网页(支持视觉识别),自己决定"下一步点哪里、填什么",遇到验证码或弹窗也能灵活应对。它最擅长三类活儿:
| 能干啥 | 通俗例子 | 省下的时间 |
|---|---|---|
| 抓取网页数据 | "把微博前 10 条热搜列出来" | 手动 10 分钟 → 30 秒 |
| 自动填表 / 提交 | "登录后台,把这批订单状态改成已发货" | 手动 1 小时 → 几分钟 |
| 跨站自动发布 | "把这条文案发到小红书和微博" | 手动来回切 → 一句话 |
隐私红线先说在前:browser-use 操作的是真实浏览器,别让它碰密码、银行卡、验证码这类私密页面。只让它处理公开数据或可信任的后台,安全第一。
Step 1:准备 Python 环境
browser-use 是 Python 项目,需要先有 Python 3.11+。打开终端,先确认版本:
# 查看 Python 版本(需要 3.11 或更高)
python --version
# 如果版本够,直接安装 browser-use
pip install browser-use
# 它依赖一个浏览器驱动 playwright,顺手装上
playwright install chromium
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple。Step 2:拿到一个大模型 API Key
browser-use 本身不生产智能,它需要一个大模型来"看屏幕、做决策"。新手推荐国内能直连的模型,便宜又稳:
常见选择(任选其一):
· DeepSeek → deepseek.com 注册,充值几元即可
· 通义千问 Qwen → 阿里云百炼,创建 API Key
· 智谱 GLM → open.bigmodel.cn,有免费额度
把 Key 做成环境变量(以 DeepSeek 为例):
# Linux / macOS
export SILICON_CLOUD_API_KEY="sk-你的key"
# Windows PowerShell
$env:SILICON_CLOUD_API_KEY="sk-你的key"
Key 千万别泄露:它等于你家大门钥匙,谁拿到都能用你的额度花钱。别截图发群里,也别写进会公开的代码仓库。
Step 3:写第一段任务脚本
browser-use 的精髓就是:你不用写"怎么点",只写"要啥"。下面这段脚本让 AI 去抓微博热搜前 10 条,复制改改就能跑:
from langchain_openai import ChatOpenAI
from browser_use import Agent
import asyncio
import os
# 用 DeepSeek(通过 OpenAI 兼容接口)
llm = ChatOpenAI(
model="deepseek-chat",
api_key=os.getenv("SILICON_CLOUD_API_KEY"),
base_url="https://api.deepseek.com/v1"
)
async def main():
agent = Agent(
task="打开微博热搜榜,把当前前 10 条热搜的标题和热度列出来。",
llm=llm,
use_vision=False # 纯文字任务可关掉视觉,更省 token
)
result = await agent.run()
print(result)
asyncio.run(main())
Step 4:运行并看懂结果
把上面脚本存成 hotsearch.py,在终端运行:
python hotsearch.py
你会看到 AI 自动:打开浏览器 → 导航到微博热搜 → 读取页面 → 提取标题和热力值 → 返回结果。真实案例里它能准确抓出前 10 条,和网页实际一致。这正是"告诉它目标,它自己想办法"的爽点。
卡住了?常见三原因:① Key 没设对(回 Step 2 检查);② 目标写太模糊("帮我看看热搜"→ 改成"列出前 10 条标题和热度");③ 页面需要登录(这种要先手动登录再让 Agent 接着干,或换成公开页面练手)。
Step 5:让它自动填表 / 提交
抓取只是起点。把 task 改成"操作类",AI 就能替你填表。比如批量更新后台订单状态:
task = """
登录公司订单后台(已保存 Cookie 的浏览器),
把订单号 A1001、A1002、A1003 的状态都改为"已发货",
每改完一个截图确认,最后汇报哪些成功哪些失败。
"""
Step 6:跨网站自动发布
运营最头疼的"同一条内容发 N 个平台",交给它就对了。注意:涉及发布/对外动作,务必让 AI 先"确认"再发:
task = """
把下面这条文案分别发布到我的小红书和微博账号:
『今天体验了 browser-use,AI 自动帮我扒完了竞品数据,太香了 🤯』
发之前先告诉我将要发布的内容和平台,等我回复"确认"再正式发布。
"""
涉及"对外发布"务必加确认环节:把"直接发"改成"先汇报、等我确认"。这样就算 AI 理解偏了,也不会把不该发的发出去。这是 Agent 安全的最低防线。
Step 7:接进你的 AI 编程助手(可选)
如果你用 Cursor、Claude Code 这类编程 Agent,可以装一个 OpenCLI 的 browser skill,让你的 AI 助手直接用你已登录的浏览器替你操作网站:
# 在你的 AI Agent 里执行(以 OpenCLI 为例)
npx skills add jackwener/opencli --skill opencli-browser
# 之后你只要说:
# "帮我在小红书上发布这篇内容"
# "看看我的 Twitter 通知并总结一下"
常见问题速查
| 你遇到的现象 | 大概率原因 & 解决 |
|---|---|
| 提示缺少 playwright 浏览器 | 执行 playwright install chromium 补装驱动 |
| AI 答"无法连接模型" | Step 2 的 API Key 没设好或没充值 |
| 抓取结果不全/错位 | task 写太笼统,拆细、明确"前 N 条""字段名" |
| 遇到登录墙卡住 | 改用已登录会话,或先用公开页面练手 |