一、項目背景與核心作用
browser-use?是一個開源的瀏覽器自動化工具,通過集成 AI 智能體(如 GPT、Claude、DeepSeek 等大型語言模型),實現用自然語言控制瀏覽器操作。其核心目標是?簡化網頁交互自動化,尤其適合復雜、多步驟的任務(如數據抓取、表單填寫、跨網站操作等)。
與傳統工具(如 Selenium)的對比優勢:
- AI 驅動決策:通過自然語言指令生成操作流程,無需手動編寫腳本。
- 自我糾錯能力:執行中自動檢測錯誤并調整策略(如元素定位失敗時嘗試替代方案)。
- 多模態支持:結合 HTML 解析與視覺模型,處理動態頁面更魯棒。
- 跨任務持久化:支持保持瀏覽器會話狀態,實現鏈式任務(如登錄后連續操作)。
-
結構化網頁理解:將網頁DOM元素轉換為簡潔的文本索引,大幅降低LLM處理開銷,提升操作準確性。
-
多場景支持:適用于電商比價、求職申請、監控報警等自動化任務。
-
與 MCP 客戶端集成:支持 Model Context Protocol(MCP),可與 Claude Desktop、其他 MCP 客戶端互聯互通
二、核心功能
-
任務分解:
- 用戶輸入自然語言指令(如“查找倫敦到紐約的最便宜航班”)。
- AI 模型(如 GPT-4)將指令分解為可執行的瀏覽器操作步驟(打開網站→輸入搜索條件→提取結果)。
-
瀏覽器控制引擎:
- 基于?Playwright?實現瀏覽器自動化(支持 Chrome/Firefox 等)。
- 自動解析頁面元素(按鈕、輸入框),生成 XPath 或 CSS 選擇器。
-
自我糾正機制:
- 若操作失敗(如元素未加載),自動重試或調用備用方案。
- 記錄操作歷史,便于回溯調試。
-
輸出結構化數據:
結果可保存為 CSV、PDF 或直接推送到數據庫。
三、工作原理
browser-use 通過解析瀏覽器的?userAgent
?字符串和其它相關環境變量,結合內置的解析規則,提取瀏覽器名稱、版本號和操作系統信息。部分庫會融合特性檢測(feature detection)以驗證瀏覽器實際支持的功能,而不僅僅局限于?userAgent
?的靜態信息。
1. 系統架構
-
Agent:接收任務描述,調用 LLM 生成執行指令。
-
Controller:解析指令,映射到標準瀏覽器操作(點擊、填表、抓取等)。
-
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
替換為firefox
或webkit
。更精細控制安裝行為,適用于容器和安全環境 ?? 參數解析
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-use | web-ui |
---|---|---|
核心定位 | 庫級工具,供開發者調用 | 圖形界面,供用戶直接操作 |
使用方式 | 通過 Python 編程調用 Agent | 通過 Web 頁面交互控制 Agent |
安裝方式 | pip 安裝庫,編寫代碼運行 | 本地或 Docker 啟動 Web 服務 |
用戶體驗 | 偏向開發者,需編程能力 | 面向普通用戶,無需編程 |
瀏覽器控制 | 支持 CLI、MCP、代碼調用 | 支持自定義瀏覽器路徑、持久會話 |
視覺呈現 | 無界面,僅代碼運行 | 提供 WebUI 和 VNC 瀏覽器畫面 |
如果你是開發者,想要構建自己的 AI 瀏覽器代理系統,browser-use
是更底層的選擇;如果你希望快速體驗或部署一個可視化的 AI 瀏覽器助手,web-ui
會更友好。