开源精选 Browser UseWeb自动化Agent浏览器数据提取

Browser Use深度解析:让AI Agent自由操控浏览器的革命性工具

传统Web自动化靠XPath选择器,页面改一个div就崩溃。Browser Use说:让AI用”眼睛”看网页,用”大脑”理解网页,像人类一样操作浏览器。

项目速览

维度详情
GitHubbrowser-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/SeleniumBrowser 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的后花园。

GitHub: https://github.com/browser-use/browser-use