开源精选 Browser UseWeb自动化Agent浏览器数据提取
云
云铭
进化之路 · 扫码阅读
微信 · 浏览器扫码
在手机上获得更好的阅读体验
Browser Use深度解析:让AI Agent自由操控浏览器的革命性工具
传统Web自动化靠XPath选择器,页面改一个div就崩溃。Browser Use说:让AI用”眼睛”看网页,用”大脑”理解网页,像人类一样操作浏览器。
项目速览
| 维度 | 详情 |
|---|---|
| GitHub | browser-use/browser-use |
| Stars | ~97K |
| 语言 | Python |
| 许可证 | MIT |
| 定位 | AI Agent的浏览器操控层 |
为什么传统Web自动化不够用
Browser Use的革命性变化
传统方案(Selenium/Playwright):
driver.find_element(By.XPATH, "//div[@class='product-card']/button").click()
→ 依赖精确的选择器
→ 页面结构变化就崩溃
→ 只能做预先编程的操作
Browser Use方案:
agent.task("把购物车里所有商品的价格加起来,然后填入预算表中")
→ AI自己理解网页
→ 适应不同的页面结构
→ 可以完成从未见过的任务
工作原理
1. 用户给Agent一个自然语言任务
"帮我预订下周三北京到上海的机票,选最便宜的"
2. Agent打开浏览器,截取当前页面截图
3. LLM分析截图 + 页面元素:
"这是一个机票搜索页面,我需要:
- 填写出发城市:北京
- 填写到达城市:上海
- 选择日期:下周三
- 点击搜索按钮"
4. Agent执行操作(点击、输入、滚动)
5. 等待页面加载,再次截图分析
6. 在结果页面上找到最便宜的选项,点击预订
7. 在预订页面填写乘客信息,完成预订
整个过程Agent自己看、自己想、自己做。
核心架构
感知-决策-执行循环
from browser_use import Agent, Browser, BrowserConfig
import asyncio
# 配置浏览器
browser = Browser(
config=BrowserConfig(
headless=False, # 是否后台运行
# 或连接到已有的浏览器实例
chrome_instance_path="/path/to/chrome"
)
)
# 创建Agent
agent = Agent(
task="""
在GitHub上找到Star数最高的10个AI Agent项目,
提取项目名称、Star数、语言、简介,
保存为CSV文件。
""",
llm="gpt-4",
browser=browser
)
# 运行
async def main():
result = await agent.run()
print(result)
asyncio.run(main())
工具集
Browser Use Agent可用的操作:
页面操作:
├── navigate(url) 导航到URL
├── click(element) 点击元素
├── input_text(element) 输入文本
├── scroll(direction) 滚动页面
├── go_back() 返回上一页
├── extract_content() 提取页面内容
└── wait(seconds) 等待加载
数据操作:
├── extract_table() 提取表格数据
├── screenshot() 截屏
├── execute_js(code) 执行JavaScript
└── download_file(url) 下载文件
高级配置
agent = Agent(
task="复杂的多步骤网页任务",
llm="gpt-4",
# 执行配置
max_steps=30, # 最大操作步数
use_vision=True, # 是否使用视觉(截图分析)
save_conversation_path="logs/", # 保存执行日志
# 规划配置
planning_interval=3, # 每3步重新评估计划
# 错误处理
max_failures=3, # 最大失败次数
retry_delay=2, # 失败重试间隔
# 成本控制
max_tokens_per_step=2000,
llm_timeout=30,
# 敏感数据处理
sensitive_data={
"信用卡号": "****",
"密码": "****"
}
)
实战场景
场景一:自动化数据采集
# 采集多个竞争对手的定价信息
competitor_sites = [
"https://competitor-a.com/pricing",
"https://competitor-b.com/pricing",
"https://competitor-c.com/pricing"
]
results = []
for site in competitor_sites:
agent = Agent(
task=f"""
访问{site},提取以下信息:
1. 所有套餐名称和价格
2. 每个套餐的核心功能(前5个)
3. 有无免费试用及其时长
将结果以JSON格式输出:
{{"套餐名": {{"价格": 0, "功能": [], "免费试用": "..."}}}}
""",
llm="claude-sonnet-4-6",
browser=browser
)
result = await agent.run()
results.append(json.loads(result))
场景二:自动化表单填写
agent = Agent(
task="""
打开job-apply.example.com,完成以下操作:
1. 填写个人信息(姓名:张三,邮箱:zhangsan@example.com)
2. 上传简历文件:/path/to/resume.pdf
3. 回答"为什么想加入我们?":根据公司官网的使命陈述写一段
4. 先不提交,截图给我确认
""",
llm="gpt-4",
browser=browser
)
场景三:跨网站工作流
agent = Agent(
task="""
执行以下跨网站工作流:
1. 打开linkedin.com,搜索"AI Product Manager"职位
2. 提取前10个职位的信息(公司、职位、地点、链接)
3. 对每家公司,去Crunchbase搜索公司规模和最新融资
4. 生成一个对比表格
5. 将表格发送到我的邮箱
""",
llm="gpt-4",
browser=browser,
max_steps=50 # 复杂任务需要更多步数
)
多Agent协作
from browser_use import Browser, Agent
browser = Browser()
# 搜索Agent:找到目标
search_agent = Agent(
task="找到今天Hacker News首页上所有关于AI的文章",
llm="claude-haiku", # 搜索用轻量模型
browser=browser
)
# 分析Agent:深入阅读分析
analyze_agent = Agent(
task="阅读搜索Agent找到的文章,总结核心观点和用户讨论方向",
llm="claude-sonnet-4-6", # 分析用中档模型
browser=browser
)
# 摘要Agent:产出最终报告
summary_agent = Agent(
task="基于分析Agent的输出,写一份300字的今日AI动态简报",
llm="gpt-4-mini",
browser=browser # 只需查看分析结果,不需要浏览
)
与Playwright/Selenium的对比
| 维度 | Playwright/Selenium | Browser Use |
|---|---|---|
| 脚本稳定性 | 差(依赖选择器) | 好(AI自适应) |
| 新任务适应性 | 需重写脚本 | 改自然语言描述即可 |
| 运行速度 | 快 | 慢(需LLM推理) |
| 运行成本 | 几乎为零 | 每次操作~$0.01-0.05 |
| 可靠性 | 对已知页面100% | 90-95%(偶尔误解页面) |
| 适用场景 | 重复性、确定性操作 | 探索性、变化性操作 |
| 开发效率 | 低(需写选择器) | 高(自然语言描述) |
安全考虑
# Browser Use 的安全最佳实践
config = BrowserConfig(
# 使用无头模式(避免被看到)
headless=True,
# 代理设置(避免IP被封)
proxy="http://proxy:8080",
# 禁止访问的域名
blocked_domains=[
"*.gov.cn",
"internal.corp.com"
],
# 沙箱模式
sandbox=True,
# 操作审计
audit_log_enabled=True,
audit_log_path="./browser_audit.log"
)
Browser Use代表了Web自动化的范式转移——从”精确编程”到”智能理解”。虽然它比传统方案慢且更贵,但在面对多样化和变化的网页时,它的鲁棒性是革命性的。对于Agent开发者来说,Browser Use就是把整个Web变成了Agent的后花园。