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.pswp.cn/web/92946.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/92946.shtml
英文地址,請注明出處:http://en.pswp.cn/web/92946.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

調用springboot接口返回403,問題定位及總結

背景在一次與前端聯調后端接口時前端返回接口返回狀態碼是403&#xff0c;前端返回說已經帶了請求token。排查 查看后端控制臺沒有出現任何錯誤信息。自己postman手動調用接口&#xff0c;發現接口正常。仔細核對前端調用接口與postman請求的區別&#xff0c;沒有發現任何問題。…

布隆過濾器原理分析、應用場景、與redis使用案例

一、核心結構與工作原理1.1 數據結構布隆過濾器由以下兩部分組成&#xff1a;位數組&#xff08;Bit Array&#xff09;&#xff1a;一個長度為 m 的二進制數組&#xff0c;初始所有位為0。哈希函數組&#xff1a;k 個獨立的哈希函數&#xff0c;每個函數將輸入元素映射到位數組…

異步并發×編譯性能:Dart爬蟲的實戰突圍

Dart憑借其高效的異步并發模型、AOT編譯性能和現代化的語法&#xff0c;正成為爬蟲開發中值得關注的新選擇。特別是對于Flutter應用開發者而言&#xff0c;Dart提供了一種"全棧同語言"的獨特優勢。 本文我將通過實戰代碼展示如何利用Dart的核心優勢——包括基于Futur…

Day 8: 深度學習綜合實戰與進階技術 - 從優化到部署的完整流程

Day 8: 深度學習綜合實戰與進階技術 - 從優化到部署的完整流程 ?? 學習目標: 掌握深度學習模型優化、調試、遷移學習等工業級技能,能夠構建高性能的深度學習應用 ?? 核心概念概覽 核心概念解釋: 模型優化: 通過正則化、學習率調度等技術提升模型性能和泛化能力 為什么需…

特征工程--機器學習

1、特征工程1.1 概念特征工程&#xff08;Feature Engineering&#xff09;是機器學習項目中非常關鍵的一步&#xff0c;它是指通過領域知識來選擇、創建或修改能夠使機器學習模型更好地工作的特征&#xff08;即輸入變量&#xff09;。特征工程的目標是提高模型的性能&#xf…

支持任意 MCP 協議的客戶端

支持任意 MCP 協議的客戶端&#xff08;如&#xff1a;Cursor、Claude、Cline&#xff09;可方便使用高德地圖 MCP server。目前支持Streamable HTTP, SSE 和 Node.js I/O 三種接入方式(推薦用戶使用Streamable HTTP)。 快速接入-MCP Server|高德地圖API

【線性代數】目錄

【線性代數】線性方程組與矩陣——&#xff08;1&#xff09;線性方程組與矩陣初步【線性代數】線性方程組與矩陣——行列式【線性代數】線性方程組與矩陣——&#xff08;2&#xff09;矩陣與線性方程組的解【線性代數】線性方程組與矩陣——&#xff08;3&#xff09;線性方程…

豆包新模型+PromptPilot:AI應用開發全流程實戰指南

> 當深度推理的豆包大模型遇上智能提示詞引擎,傳統AI開發中**70%的調試時間被壓縮至幾分鐘**,一場從“手工調參”到“智能優化”的開發范式革命正在發生。 ## 一、技術架構解析:雙引擎驅動智能進化 ### 1.1 豆包新模型的技術突破 2025年火山引擎推出的**豆包1.6系列模型…

Day13 Vue工程化

1.介紹&環境準備 npm兩項全局配置2.項目介紹&開發流程 npm create vue3.3.4 / install / run dev3.API風格 setup ref() onMounted()兩種風格選項式API寫法轉為組合式API寫法在根組件App.vue中引用寫好的xxx.vue4.案例1.引入組件2.完整代碼<script></script&g…

Linux中配置DNS

Linux中配置DNS服務 一、什么是DNS DNS (Domain Name System) 是域名服務 &#xff0c;它是由解析器和域名服務器組成的。 域名服務器是指保存有該網絡中所有主機的域名和對應IP地址&#xff0c; 并具有將域名轉換為IP地址功能的服務器。&#xff08;將網址解析成IP&#xff…

Redis應?-緩存與分布式鎖

&#x1f308; 個人主頁&#xff1a;Zfox_ &#x1f525; 系列專欄&#xff1a;Redis &#x1f525; 什么是緩存 緩存(cache)是計算機中的?個經典的概念.在很多場景中都會涉及到 核?思路就是把?些常?的數據放到觸?可及 (訪問速度更快) 的地?,?便隨時讀取 對于計算機…

TCP、HTTP/HTTPS、FTP 解析 + 面試回答參考

TCP、HTTP/HTTPS、FTP 解析 面試回答參考 在后端開發、網絡編程以及運維面試中&#xff0c;TCP 協議、HTTP/HTTPS、FTP 是高頻考點。本文將從原理、流程、面試常問問題出發&#xff0c;幫你一次性搞懂這些核心知識點。一、TCP 三次握手 1. 作用 建立可靠連接&#xff0c;確保雙…

ATF(TF-A)安全通告 TFV-13(CVE-2024-7881)

安全之安全(security)博客目錄導讀 ATF(TF-A)安全通告匯總 目錄 一、漏洞描述 二、緩解措施與建議 三、補丁修改 關于該漏洞的具體細節,可參考【CVE-2024-7881】ARM CPU漏洞安全通告】 Title 非特權上下文可以觸發數據相關的預取引擎,從而獲取特權位置的內容,并將這些…

Pytorch深度學習框架實戰教程-番外篇02-Pytorch池化層概念定義、工作原理和作用

相關文章 視頻教程 《Pytorch深度學習框架實戰教程01》《視頻教程》 《Pytorch深度學習框架實戰教程02&#xff1a;開發環境部署》《視頻教程》 《Pytorch深度學習框架實戰教程03&#xff1a;Tensor 的創建、屬性、操作與轉換詳解》《視頻教程》 《Pytorch深度學習框架實戰…

常見通信協議詳解:TCP、UDP、HTTP/HTTPS、WebSocket 與 GRPC

常見通信協議詳解&#xff1a;TCP、UDP、HTTP/HTTPS、WebSocket 與 RPC 在現代網絡通信中&#xff0c;各種協議扮演著至關重要的角色&#xff0c;它們決定了數據如何在網絡中傳輸、控制其可靠性、實時性與適用場景。對于開發者而言&#xff0c;理解這些常見的通信協議&#xff…

部署一個自己的音樂播放器教程

以下以部署 YesPlayMusic 為例&#xff0c;介紹兩種常見的部署方法&#xff0c;一種是通過 Node.js 和 Git 在 Windows 系統上部署&#xff0c;另一種是通過 Docker 在 Linux 系統上部署。具體步驟如下&#xff1a;Windows 系統部署&#xff08;基于 Node.js 和 Git&#xff09…

FFMPEG將H264轉HEVC時,碼率縮小多少好,以及如何通過SSIM(Structural Similarity Index結構相似性指數)衡量轉碼損失

最近整理一些視頻&#xff0c;我發現太多了&#xff0c;就想把一些本來就需要轉碼的視頻縮小一下。因為轉碼的時候為了彌補損失&#xff0c;我將碼率增大了 10-20%&#xff0c;但是如果將 H264 轉 HEVC&#xff08;當然也可以是其他格式&#xff09;&#xff0c;那么或許不用增…

前端,route路由

路由定義與導航動態路由匹配&#xff1a;參數傳遞&#xff08;/user/:id&#xff09;嵌套路由配置與 <router-view> 層級渲染編程式導航&#xff1a;router.push、router.replace 和 router.go路由守衛與權限控制全局守衛&#xff1a;beforeEach、beforeResolve、afterEa…

Kubernetes網絡原理深度解析

Kubernetes網絡原理深度解析 1 Kubernetes網絡模型 Kubernetes 網絡模型是其實現容器化應用高效通信的基礎框架。它致力于解決容器編排環境中復雜的網絡連通性、服務發現與負載均衡等問題&#xff0c;追求讓容器、Pod 等網絡端點像傳統主機網絡一樣簡潔、可預測地通信 。其核心…

Python3.10 + Firecrawl 下載 Markdown 文檔:構建高效通用文章爬蟲

在信息爆炸的時代&#xff0c;從各種網站收集和整理文章內容已成為許多開發者和研究人員的常見需求。無論是為了內容聚合、數據分析還是知識管理&#xff0c;一個高效、穩定的通用文章爬蟲都是不可或缺的工具。 本文將詳細介紹如何使用 Python 3.10 結合 Firecrawl API 構建一個…