当前位置: 首页 > news >正文

GitHub Browser-Use 的部署失败记录:失败了,失败了。。。。

一、项目背景与核心作用

browser-use 是一个开源的浏览器自动化工具,通过集成 AI 智能体(如 GPT、Claude、DeepSeek 等大型语言模型),实现用自然语言控制浏览器操作。其核心目标是 简化网页交互自动化,尤其适合复杂、多步骤的任务(如数据抓取、表单填写、跨网站操作等)。

与传统工具(如 Selenium)的对比优势
  1. AI 驱动决策:通过自然语言指令生成操作流程,无需手动编写脚本。
  2. 自我纠错能力:执行中自动检测错误并调整策略(如元素定位失败时尝试替代方案)。
  3. 多模态支持:结合 HTML 解析与视觉模型,处理动态页面更鲁棒。
  4. 跨任务持久化:支持保持浏览器会话状态,实现链式任务(如登录后连续操作)。
  5. 结构化网页理解:将网页DOM元素转换为简洁的文本索引,大幅降低LLM处理开销,提升操作准确性。

  6. 多场景支持:适用于电商比价、求职申请、监控报警等自动化任务。

  7. 与 MCP 客户端集成:支持 Model Context Protocol(MCP),可与 Claude Desktop、其他 MCP 客户端互联互通


二、核心功能

  1. 任务分解

    • 用户输入自然语言指令(如“查找伦敦到纽约的最便宜航班”)。
    • AI 模型(如 GPT-4)将指令分解为可执行的浏览器操作步骤(打开网站→输入搜索条件→提取结果)。
  2. 浏览器控制引擎

    • 基于 Playwright 实现浏览器自动化(支持 Chrome/Firefox 等)。
    • 自动解析页面元素(按钮、输入框),生成 XPath 或 CSS 选择器。
  3. 自我纠正机制

    • 若操作失败(如元素未加载),自动重试或调用备用方案。
    • 记录操作历史,便于回溯调试。
  4. 输出结构化数据
    结果可保存为 CSV、PDF 或直接推送到数据库。


三、工作原理

browser-use 通过解析浏览器的 userAgent 字符串和其它相关环境变量,结合内置的解析规则,提取浏览器名称、版本号和操作系统信息。部分库会融合特性检测(feature detection)以验证浏览器实际支持的功能,而不仅仅局限于 userAgent 的静态信息。

1. 系统架构
  1. Agent:接收任务描述,调用 LLM 生成执行指令。

  2. Controller:解析指令,映射到标准浏览器操作(点击、填表、抓取等)。

  3. Playwright:真正启动无头/有头浏览器,执行 Controller 下发的操作。

这种三层分离设计,使得业务逻辑、指令解析与浏览器执行相互隔离,便于扩展与调试。

┌────────────┐     ┌───────────┐     ┌──────────────┐
│  AI Agent  ├─→──┤ Controller ├─→───┤ Playwright   │
│ (LLM 调用) │    │            │     │ 浏览器实例    │
└────────────┘     └───────────┘     └──────────────┘
2. 工作流程

3. 关键技术
  • 元素定位:通过XPath/CSS选择器映射LLM返回的索引到具体元素5。

  • 状态检测:操作后对比DOM哈希值判断页面是否变化,决定是否重新规划步骤5。

  • 错误处理:自动重试、回退、上下文重建,提高鲁棒性1。


四、部署

1. 项目安装

1)安装依赖
pip install browser-use

安装界面:


⚠️过程有点慢啊,有点慢。。。


2)安装浏览器支持

安装playwright依赖

npm i -D @playwright/test

安装浏览器驱动

npx playwright install  # 安装浏览器驱动

安装界面:

🧩你也可以选择

只安装某个指定的浏览器:

命令简介默认行为
playwright install安装 Playwright 所有支持的浏览器(Chromium、Firefox、WebKit)自动下载三种浏览器到本地缓存
playwright install chromium --with-deps --no-shell只安装 Chromium 浏览器,并添加依赖项,同时禁用 shell 执行。如果需要测试其他内核,可将 chromium 替换为 firefoxwebkit更精细控制安装行为,适用于容器和安全环境
⚙️ 参数解析
  • chromium 指定只安装 Chromium 浏览器,而不安装其他(例如 Firefox 或 WebKit)。

  • --with-deps 安装浏览器运行所需的系统依赖项(比如在 Linux 上的 libX11、glib2、fontconfig 等),防止浏览器运行失败。

  • --no-shell 禁用 shell 脚本执行,适合在受限环境中运行,比如 Docker 或 CI/CD,不会触发 shell 命令。

🚀 应用场景建议
  • 使用 playwright install: 如果你希望快速安装 Playwright 所有浏览器,并且没有环境限制,是最简单直接的方式。

  • 使用 playwright install chromium --with-deps --no-shell: 如果你只需 Chromium,或者在无 shell 支持的容器环境中运行,需要更稳定的依赖环境,就用这个更安全的方式。

 2. Python代码测试

配置LLM密钥(.env文件)

在python环境中创建.env文件,把相关API-key记载其中,以备用程序代码读取:

# .env 文件示例
Silicon_Cloud_API_KEY=sk-xxx
Base_URL=https://api.siliconflow.cn
Model=Qwen/Qwen2.5-72B-Instruct  # 开源替代模型:cite[2]:cite[4]

# 或使用OpenAI
OPENAI_API_KEY=sk-yyy

from browser_use import Agent
from langchain_openai import ChatOpenAI
import asyncio
import os
from dotenv import load_dotenv
from browser_use.llm import ChatOpenAIload_dotenv()async def main():agent = Agent(task="在百度搜索网站,查询mcp,并总结前五条信息",llm = ChatOpenAI(model=os.getenv("Model"), api_key=os.getenv("Silicon_Cloud_API_KEY")),use_vision=False,  # 关闭截图识别以节省成本install_extensions=False,  # 添加此行禁用扩展下载        )result = await agent.run()print(result["output"])  # 输出抓取的数据asyncio.run(main())

执行过程中,提示找不到:langchain-openai ,安装了一下:

pip install langchain-openai

然后执行的情况:

执行逻辑:

键信息提取
1. 1.
   Agent初始化
   
   - 启动了 browser-use agent 0.5.11 ,使用双模型架构:
     - 基础模型: Qwen/Qwen2.5-72B-Instruct
     - 提取模型: Qwen/Qwen2.5-72B-Instruct
   - 支持文件系统访问功能
2. 2.
   任务详情
   
   - 执行任务: 在百度搜索网站,查询mcp,并总结前五条信息
3. 3.
   浏览器启动
   
   - 启动本地Chromium浏览器(通过Playwright)
   - 配置: keep_alive=False ,用户数据目录位于 ~\.config\browseruse\profiles\default
4. 4.
   扩展下载错误
   
   ```
   WARNING  [browser_use.utils] ⚠️ 
   Failed to setup uBlock Origin 
   extension: 
   Failed to download extension: 
   <urlopen error [WinError 10060] 
   由于连接方在一段时间后没有正确答复或连
   接的主机没有反应,连接尝试失败。>
   ```
   - 错误原因 :uBlock Origin扩展下载超时(网络连接问题)
   - 影响 :浏览器将缺少广告拦截功能,可能导致搜索结果中出现广告干扰

执行现象,就看到他反复打开这个简易的浏览器:

3、测试结果

我能力不够,驾驭不了。。。。

五、使用交互式 CLI 进行测试

官网给出了交互式的方式,我安装下面说明试了一下:

您还可以使用我们的交互式 CLI(类似于代码):browser-useclaude

pip install "browser-use[cli]"
browser-use

pip install "browser-use[cli]" 执行正常:

执行之后,还是用不了:

⚠️备注:

您可以使用其 Web UI 或桌面应用程序测试浏览器的使用情况。github上有web U1,和App的项目。

六、MCP 集成

官网还给了mcp的测试方式,我就不测了,太伤心了💔

{"mcpServers": {"browser-use": {"command": "uvx","args": ["browser-use[cli]", "--mcp"],"env": {"OPENAI_API_KEY": "sk-..."}}}
}

七、附录

1、官方参考文档

https://docs.browser-use.com/introduction

2、web-ui与browser-use对比

https://github.com/browser-use/web-ui与https://github.com/browser-use/browser-use 这两个项目的对比:

🧠 项目定位对比

项目主要功能使用场景
browser-use提供 AI 控制浏览器的核心库用于开发者构建自动化任务、集成 AI agent
web-ui提供图形化界面运行 AI agent面向用户交互、可视化操作 AI 浏览器代理

🔗 相通之处

  • 共同目标:都旨在让 AI 能够控制浏览器,实现网页自动化。

  • 技术基础:都使用 Python 和 Playwright 实现浏览器控制。

  • 支持多种 LLM:如 OpenAI、Anthropic、DeepSeek 等。

  • 可通过 .env 配置 API 密钥与环境参数

  • 支持 MCP 协议:可与 Claude Desktop 等工具集成。

🚀 主要区别

方面browser-useweb-ui
核心定位库级工具,供开发者调用图形界面,供用户直接操作
使用方式通过 Python 编程调用 Agent通过 Web 页面交互控制 Agent
安装方式pip 安装库,编写代码运行本地或 Docker 启动 Web 服务
用户体验偏向开发者,需编程能力面向普通用户,无需编程
浏览器控制支持 CLI、MCP、代码调用支持自定义浏览器路径、持久会话
视觉呈现无界面,仅代码运行提供 WebUI 和 VNC 浏览器画面

如果你是开发者,想要构建自己的 AI 浏览器代理系统,browser-use 是更底层的选择;如果你希望快速体验或部署一个可视化的 AI 浏览器助手,web-ui 会更友好。

http://www.dtcms.com/a/327151.html

相关文章:

  • 在 Windows 上升级 Python 到 3.8 的步骤
  • 【微服务过度拆分的问题】
  • IEEE 2025 | 重磅开源!SLAM框架用“法向量+LRU缓存”,将三维重建效率飙升72%!
  • 学习嵌入式的第十七天——Linux编程——shell编程
  • 【图像算法 - 13】基于 YOLO12 与 OpenCV 的实时目标点击跟踪系统(系统介绍 + 源码详细)
  • centos 怎么部署 vscode 网页版
  • 如何提升需求分析能力
  • 数据分析—双十一
  • Linux磁盘空间逻辑卷扩容
  • 服务器service托管java服务
  • 【无标题】centos 配置阿里云的yum源
  • 如何区分类的关系是关联和聚合?
  • 【数据结构】二叉树经典OJ题与OJ题解析
  • 【传奇开心果系列】Flet框架实现的多人访问web数据表高并发前后端自定义框架模板
  • iPhone 17 Pro 为何被指像充电宝?
  • 【2025最新版】视频转换软件VideoProc Converter Al 便携版 功能强大的视频转换工具 百度网盘
  • iPad 引导式访问(Guided Access)完整指南
  • 26 届秋招建议指南
  • Web 安全之互联网暴露面管理
  • python调研本地 DeepSeek API的例子
  • Java 22 新特性:字符串模板(String Templates)让拼接更优雅、更安全
  • iOS混淆工具有哪些?团队协作视角下的分工与防护方案
  • 飞算JavaAI 2.0.0深度测评:自然语言编程如何重塑Java开发范式
  • 给商品换背景--指令改图,主图场景随心换
  • 【Allegro SKILL代码解析】添加Pin Number
  • NetworkManager配置热点
  • Springboot注册过滤器的三种方式(Order 排序)
  • 如何用codeBuddy20分钟处理一单数据分析
  • 10. React组件间的通信
  • MySQL——MySQL引擎层BufferPool工作过程原理