browser-use WebUI + DeepSeek 基于AI的UI自動化解決方案

browser-use WebUI

  • 一、browser-use是什么
    • Browser-use采用的技術棧為:
  • 二、browser-use webui 主要功能
    • 使用場景
  • 三、使用教程
    • 1.python 安裝
    • 2、把項目clone下來
    • 3、安裝依賴
    • 4、配置環境
    • 5、啟動
    • 6、配置
      • 1.配置 Agent
      • 2.配置要用的大模型
      • 3.關于瀏覽器的一些設置
    • 四、DeepSeek 的API獲取
    • 五、界面Demo 演示
    • 六、代碼示例
      • 1.創建Agent
    • 七、實例展示
      • 一、爬取基金數據
      • 二、效果展示
        • 1、導航到指定網址
        • 2、點擊基金排行
        • 3、提取top 10的基金數據
      • 三、總結

一、browser-use是什么

Browser Use 是一款開源Python庫,專為大語言模型設計的智能瀏覽器工具,目的是讓 AI 能夠像人類一樣自然地瀏覽和操作網頁。它支持多標簽頁管理、視覺識別、內容提取,并能記錄和重復執行特定動作。Browser Use 還支持開發者自定義動作,如保存數據到數據庫,文件等。支持多種主流的大型語言模型,如 DeepSeek,GPT-4 和 Claude等,并支持同時運行多個任務,具備自我修正功能,從而提高任務執行的準確性和效率。

官網:https://browser-use.com/

項目網址 :https://github.com/browser-use/browser-use

Browser-use采用的技術棧為:

  • 1、Observation:頁面解析層,采用DOM解析+截圖輔助的非視覺+視覺方案。
    • DOM解析(HTML + XPath):Browser-use通過底層框架(如Playwright)獲取當前頁面的完整HTML結構,并提取文本、元素屬性等關鍵信息。
    • 截圖輔助:在某些情況下(如驗證碼識別、動態圖形驗證),純HTML解析可能無法直接獲取信息,此時系統會自動或按需生成頁面截圖,并將截圖作為輔助輸入傳遞給視覺模型
  • 2、Thought:核心決策層,分析Observation提供的頁面信息并生成操作指令。
  • 3、Action:指令執行層,微軟開發的Playwright作為瀏覽器控制框架直接與瀏覽器交互完成自動化任務。Playwright作為新一代高性能UI自動化測試框架,提供低延遲、高穩定性的瀏覽器控制能力,支持快速頁面加載和元素操作。

二、browser-use webui 主要功能

提供了全新的網頁界面,簡單好用,方便操作。
支持更多大語言模型,比如 Gemini、OpenAI、Azure 等,哦,還有最近爆火的國產大模型 DeepSeek,未來還會加更多。
支持用自己的瀏覽器,不用再反復登錄,還能錄屏。
定制了更智能的 Agent,通過優化后的提示讓瀏覽器使用更高效。

使用場景

  • 自動化任務:適合重復高頻的瀏覽器操作任務,如表單填寫,信息檢索,文件下載
  • 數據收集:適合爬取網絡上的數據,如爬蟲自動化測試:適合WEB UI
  • 自動化測試,結合pytest輕松實現web自動化

三、使用教程

1.python 安裝

python 官網: https://www.python.org/downloads/版本必須在 3.11 以上。

2、把項目clone下來

git clone https://github.com/browser-use/web-ui.git
cd web-ui

3、安裝依賴

pip install browser-use
playwright install
pip install -r requirements.txt

4、配置環境

基于 .env.example 復制一個 .env 文件,并在 .env 文件中修改以下信息

# 路徑 Chrome 瀏覽器路徑(檢查下自己的路徑),例如
# Mac OS "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
# Windows "C:\Program Files\Google\Chrome\Application\chrome.exe"
CHROME_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"# 瀏覽器的用戶數據路徑,例如
# Mac OS "/Users/<YourUsername>/Library/Application Support/Google/Chrome"
# Windows "C:\Users\<YourUsername>\AppData\Local\Google\Chrome\User Data"
CHROME_USER_DATA="/Users/<YourUsername>/Library/Application Support/Google/Chrome"# 還有一些大模型的 API Key 也要改
...

5、啟動

執行如下命令啟動

python webui.py --ip 127.0.0.1 --port 7788

啟動成功如下所示:
在這里插入圖片描述
瀏覽器訪問 http://127.0.0.1:7788/,看到如下界面就成功了
在這里插入圖片描述

6、配置

1.配置 Agent

注意,這里的 Use Vision,默認是選中狀態,如果使用的 DeepSeek 不能勾選,因為 DeepSeek 不支持視覺輸入,注意這里很多人踩坑,一定要注意。
在這里插入圖片描述

2.配置要用的大模型

例如,下面我用的是 deepseek。
在這里插入圖片描述

3.關于瀏覽器的一些設置

在這里插入圖片描述

四、DeepSeek 的API獲取

DeepSeek :https://platform.deepseek.com/api_keys
在這里插入圖片描述

五、界面Demo 演示

輸入要執行的任務就可以點擊 Run Agent 了
在這里插入圖片描述
以下是運行時的項目日志輸出,記錄了執行步驟
在這里插入圖片描述
執行的過程中也會打開瀏覽器和跳轉到目標網站,按照區塊一樣對頁面元素做標注。
在這里插入圖片描述
在 Recodings 下會記錄執行過程和反饋結果,還可以回看的。
在這里插入圖片描述

六、代碼示例

1.創建Agent

from langchain_openai import ChatOpenAI
from browser_use import Agent
import asyncioasync def main():agent = Agent(task="Go to Reddit, search for 'browser-use' in the search bar, click on the first post and return the first comment.",llm=ChatOpenAI(model="gpt-4o"),)result = await agent.run()print(result)asyncio.run(main())

如果沒有openai-key的可以使用其他模型,下面以DeepSeek為例:

該文件在 browser-use/examples/deepseek.py

import asyncio
import osfrom dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from pydantic import SecretStrfrom browser_use import Agent# dotenv
load_dotenv()api_key = os.getenv('DEEPSEEK_API_KEY', 'sk-xxxxxx')
if not api_key:raise ValueError('DEEPSEEK_API_KEY is not set')async def run_search():agent = Agent(task=("1. 在搜索框中輸入抖音并搜索"'2. 點擊搜索結果中的第一個鏈接''3. 關閉掃碼登錄'	'3. 返回第一個視頻的內容'),llm=ChatOpenAI(base_url='https://api.deepseek.com/v1',model='deepseek-chat',api_key=SecretStr(api_key),),use_vision=False,)await agent.run()if __name__ == '__main__':asyncio.run(run_search())

運行結果如下:
在這里插入圖片描述

七、實例展示

一、爬取基金數據

llm = ChatOpenAI(model='deepseek-chat',api_key='*************',base_url='https://api.deepseek.com',temperature=0
)asyncdefmain():agent = Agent(task="""1、導航到網址:https://fund.eastmoney.com/2、點擊基金排行3、返回排行前10的基金數據,以json格式返回""",llm=llm,use_vision=False,)result = await agent.run()print(result.final_result())asyncio.run(main())

二、效果展示

1、導航到指定網址

在這里插入圖片描述

2、點擊基金排行

在這里插入圖片描述

3、提取top 10的基金數據
DEBUG    [browser_use] --act Execution time: 0.00 seconds
INFO     [controller] 📄  Extracted from page
: ```json
{
"top_10_funds": [{"rank": 1,"fund_code": "018124","fund_name": "永贏先進制造智選混合發起A","date": "03-07","unit_net_value": "2.1654","cumulative_net_value": "2.1654","daily_growth_rate": "2.21%","1_week": "9.15%","1_month": "17.58%","3_months": "64.06%","6_months": "191.13%","1_year": "115.94%","since_inception": "116.54%","handling_fee": "0.15%"},{"rank": 2,"fund_code": "018125","fund_name": "永贏先進制造智選混合發起C","date": "03-07","unit_net_value": "2.1501","cumulative_net_value": "2.1501","daily_growth_rate": "2.21%","1_week": "9.15%","1_month": "17.54%","3_months": "63.89%","6_months": "190.55%","1_year": "115.07%","since_inception": "115.01%","handling_fee": "0.00%"},{"rank": 3,"fund_code": "016530","fund_name": "鵬華碳中和主題混合A","date": "03-07","unit_net_value": "1.7881","cumulative_net_value": "1.7881","daily_growth_rate": "3.00%","1_week": "10.23%","1_month": "22.92%","3_months": "68.07%","6_months": "178.39%","1_year": "104.00%","since_inception": "78.81%","handling_fee": "0.15%"},{"rank": 4,"fund_code": "016531","fund_name": "鵬華碳中和主題混合C","date": "03-07","unit_net_value": "1.7685","cumulative_net_value": "1.7685","daily_growth_rate": "3.00%","1_week": "10.21%","1_month": "22.86%","3_months": "67.81%","6_months": "177.59%","1_year": "102.79%","since_inception": "76.85%","handling_fee": "0.00%"},{"rank": 5,"fund_code": "001970","fund_name": "泰信鑫選靈活配置混合A","date": "03-07","unit_net_value": "1.3310","cumulative_net_value": "1.3310","daily_growth_rate": "-1.04%","1_week": "7.25%","1_month": "4.80%","3_months": "31.00%","6_months": "125.59%","1_year": "95.45%","since_inception": "33.10%","handling_fee": "0.15%"},{"rank": 6,"fund_code": "002580","fund_name": "泰信鑫選靈活配置混合C","date": "03-07","unit_net_value": "1.3220","cumulative_net_value": "1.3220","daily_growth_rate": "-0.97%","1_week": "7.31%","1_month": "4.84%","3_months": "31.15%","6_months": "125.60%","1_year": "95.27%","since_inception": "31.67%","handling_fee": "0.00%"},{"rank": 7,"fund_code": "016295","fund_name": "新華利率債債券E","date": "03-07","unit_net_value": "1.7977","cumulative_net_value": "1.9906","daily_growth_rate": "-0.13%","1_week": "-0.06%","1_month": "-0.66%","3_months": "0.85%","6_months": "94.13%","1_year": "92.89%","since_inception": "99.00%","handling_fee": "0.00%"},{"rank": 8,"fund_code": "019457","fund_name": "平安先進制造主題股票發起A","date": "03-07","unit_net_value": "1.7593","cumulative_net_value": "1.7593","daily_growth_rate": "1.78%","1_week": "10.41%","1_month": "23.92%","3_months": "57.40%","6_months": "134.29%","1_year": "90.71%","since_inception": "75.93%","handling_fee": "0.15%"},{"rank": 9,"fund_code": "019458","fund_name": "平安先進制造主題股票發起C","date": "03-07","unit_net_value": "1.7452","cumulative_net_value": "1.7452","daily_growth_rate": "1.78%","1_week": "10.40%","1_month": "23.87%","3_months": "57.17%","6_months": "133.60%","1_year": "89.59%","since_inception": "74.52%","handling_fee": "0.00%"},{"rank": 10,"fund_code": "007713","fund_name": "華富科技動能混合A","date": "03-07","unit_net_value": "1.4600","cumulative_net_value": "1.5100","daily_growth_rate": "1.47%","1_week": "8.19%","1_month": "18.94%","3_months": "47.07%","6_months": "135.41%","1_year": "89.14%","since_inception": "51.93%","handling_fee": "0.15%"}]
}

二、結合pytest實現頁面自動化測試
異步執行需要安裝插件pytest-asyncio

pip install pytest-asyncio
@pytest.mark.asyncio
@pytest.mark.parametrize("username,password,expected", [("kevin@xxxx.com", "a123456", "kevin"),("kevin@xxxx.com", "123456", "賬號密碼輸入錯誤")])
asyncdeftest_login(username, password, expected):agent = Agent(task=f"""1、導航到網址:https://xxxxxxx.com2、輸入用戶名:{username}, 密碼:{password}3、點擊登錄按鈕4、驗證是否登錄成功,登錄成功返回{expected}""",llm=llm,use_vision=False,)result = await agent.run()assert expected in str(result.final_result())

三、總結

Browser Use 深度集成大語言模型(LLM),通過語義理解與視覺決策鏈實現零硬編碼自動化,徹底顛覆傳統腳本開發模式。AI 自動解析頁面結構、動態生成操作路徑,無需人工編寫 XPath/CSS 定位器,開發效率提升 5 倍以上,尤其擅長處理動態驗證、反爬策略及多步驟交互場景,成為金融數據抓取、跨平臺測試的新一代智能引擎。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72750.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72750.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72750.shtml

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

相關文章

WPF CommunityToolkit.MVVM庫的簡單使用

CommunityToolkit.MVVM 是 .NET 社區工具包中的一部分&#xff0c;它為實現 MVVM&#xff08;Model-View-ViewModel&#xff09;模式提供了一系列實用的特性和工具&#xff0c;能幫助開發者更高效地構建 WPF、UWP、MAUI 等應用程序。以下是關于它的詳細使用介紹&#xff1a; 1…

Windows安裝Apache Maven 3.9.9

第一步下載資源 官網&#xff1a;下載 Apache Maven – Maven 環境變量配置 M2_HOME 指向bin目錄 MAVEN_HOME 指向根目錄 M2_HOME 不確定是否必須要 Path配置 &#xff0c;需要注意MAVEN順序應當在java之前 驗證是否安裝成功&#xff0c;在cmd中以管理員方式打開&#xff0c…

【spring-boot-starter-data-neo4j】創建結點和查找結點操作

配置連接neo4j # application.properties spring.neo4j.uribolt://localhost:7687 spring.neo4j.authentication.usernameneo4j spring.neo4j.authentication.password你的密碼定義實體類 package com.anmory.platform.GraphService.Dao;import org.springframework.data.neo…

pytorch小記(十三):pytorch中`nn.ModuleList` 詳解

pytorch小記&#xff08;十三&#xff09;&#xff1a;pytorch中nn.ModuleList 詳解 PyTorch 中的 nn.ModuleList 詳解1. 什么是 nn.ModuleList&#xff1f;2. 為什么不直接使用普通的 Python 列表&#xff1f;3. nn.ModuleList 的基本用法示例&#xff1a;構建一個包含兩層全連…

Excel導出工具類--復雜的excel功能導出(使用自定義注解導出)

Excel導出工具類 前言: 簡單的excel導出,可以用easy-excel, fast-excel, auto-poi,在導出實體類上加上對應的注解,用封裝好的工具類直接導出,但對于復雜的場景, 封裝的工具類解決不了,要用原生的excel導出(easy-excel, fast-excel, auto-poi都支持原生的) 業務場景: 根據…

批量測試IP和域名聯通性2

在前面批量測試IP和域名聯通性-CSDN博客的基礎上&#xff0c;由于IP和域名多樣性&#xff0c;比如帶端口號的192.168.1.17:17&#xff0c;實際上應該ping 192.168.1.17。如果封禁http://www.abc.com/a.exe&#xff0c;實際可ping www.abc.com。所以又完善了代碼。 echo off se…

國產編輯器EverEdit - 語法著色文件的語法

1 語法著色定義(官方文檔) 1.1 概述 EverEdit有著優異的語法著色引擎&#xff0c;可以高亮現存的絕大多數的編程語言。在EverEdit的語法著色中有Region和Item兩個概念&#xff0c;Region表示著不同的區塊。而Item則代表著這些區塊中不同的部分。一般情況下&#xff0c;Region…

Excel處理控件Aspose.Cells教程:如何自動將 HTML 轉換為 Excel

在處理 HTML 表中呈現的結構化數據時&#xff0c;將 HTML 轉換為 Excel 是一種常見需求。無論您是從網站、報告還是任何其他來源提取數據&#xff0c;將其轉換為 Excel 都可以更好地進行分析、操作和共享。 開發人員通常更喜歡使用編程方法將 HTML 轉換為 Excel&#xff0c;因…

基于springbo校園安全管理系統(源碼+lw+部署文檔+講解),源碼可白嫖!

摘要 隨著信息時代的來臨&#xff0c;過去信息校園安全管理方式的缺點逐漸暴露&#xff0c;本次對過去的校園安全管理方式的缺點進行分析&#xff0c;采取計算機方式構建校園安全管理系統。本文通過閱讀相關文獻&#xff0c;研究國內外相關技術&#xff0c;提出了一種集進出校…

vim在連續多行行首插入相同的字符

工作中經常需要用vim注釋掉一段代碼或者json文件中的一部分&#xff0c;需要在多行前面插入//或者#符號。在 Vim 中&#xff0c;在連續多行行首插入相同字符主要有以下兩種方法&#xff1a; Visual Block 模式插入 將光標移到要插入相同內容的第一行的行首24。按下Ctrl v進入…

Git 實戰指南:本地客戶端連接 Gitee 全流程

本文將以 Gitee(碼云)、系統Windows 11 為例,詳細介紹從本地倉庫初始化到遠程協作的全流程操作 目錄 1. 前期準備1.1 注冊與配置 Gitee1.2 下載、安裝、配置客戶端1.3 配置公鑰到 Gitee2. 本地倉庫操作(PowerShell/Git Bash)2.1 初始化本地倉庫2.2 關聯 Gitee 遠程倉庫3. …

Pytest項目_day01(HTTP接口)

HTTP HTTP是一個協議&#xff08;服務器傳輸超文本到瀏覽器的傳送協議&#xff09;&#xff0c;是基于TCP/IP通信協議來傳輸數據&#xff08;HTML文件&#xff0c;圖片文件&#xff0c;查詢結果等&#xff09;。 訪問域名 例如www.baidu.com就是百度的域名&#xff0c;我們想…

MySQL超詳細介紹(近2萬字)

1. 簡單概述 MySQL安裝后默認有4個庫不可以刪除&#xff0c;存儲的是服務運行時加載的不同功能的程序和數據 information_schema&#xff1a;是MySQL數據庫提供的一個虛擬的數據庫&#xff0c;存儲了MySQL數據庫中的相關信息&#xff0c;比如數據庫、表、列、索引、權限、角色等…

SQLMesh宏操作符深度解析:掌握@star與@GENERATE_SURROGATE_KEY實戰技巧

引言&#xff1a;解鎖SQLMesh的動態查詢能力 在復雜的數據處理場景中&#xff0c;手動編寫重復性SQL代碼不僅效率低下&#xff0c;還難以維護。SQLMesh作為新一代數據庫中間件&#xff0c;通過其強大的宏系統賦予開發者編程式構建查詢的能力。本文將重點解析兩個核心操作符——…

超詳細kubernetes部署k8s----一臺master和兩臺node

一、部署說明 1、主機操作系統說明 2、主機硬件配置說明 二、主機準備&#xff08;沒有特別說明都是三臺都要配置&#xff09; 1、配置主機名和IP 2、配置hosts解析 3、防火墻和SELinux 4、時間同步配置 5、配置內核轉發及網橋過濾 6、關閉swap 7、啟用ipvs 8、句柄…

高光譜相機在水果分類與品質檢測中的應用

一、核心應用領域 ?外部品質檢測? ?表面缺陷識別&#xff1a;通過400-1000nm波段的高光譜成像&#xff0c;可檢測蘋果表皮損傷、碰傷等細微缺陷&#xff0c;結合圖像分割技術實現快速分類?。 ?損傷程度評估&#xff1a;例如青香蕉的碰撞損傷會導致光譜反射率變化&#…

【藍橋杯每日一題】3.17

&#x1f3dd;?專欄&#xff1a; 【藍橋杯備篇】 &#x1f305;主頁&#xff1a; f狐o貍x 他們說內存泄漏是bug&#xff0c;我說這是系統在逼我進化成SSR級程序員 OK來吧&#xff0c;不多廢話&#xff0c;今天來點有難度的&#xff1a;二進制枚舉 二進制枚舉&#xff0c;就是…

Windows11 新機開荒(二)電腦優化設置

目錄 前言&#xff1a; 一、注冊微軟賬號綁定權益 二、此電腦 桌面圖標 三、系統分盤及默認存儲位置更改 3.1 系統分盤 3.2 默認存儲位置更改 四、精簡任務欄 總結&#xff1a; 前言&#xff1a; 本文承接上一篇 新機開荒&#xff08;一&#xff09; 上一篇文章地址&…

aws(學習筆記第三十三課) 深入使用cdk 練習aws athena

文章目錄 aws(學習筆記第三十三課) 深入使用cdk學習內容&#xff1a;1. 使用aws athena1.1 什么是aws athena1.2 什么是aws glue1.2 為什么aws athena和aws glue一起使用 2. 開始練習aws athena2.1 代碼鏈接2.2 整體架構2.3 代碼解析2.3.1 創建測試數據的S3 bucket2.3.2 創建保…

每日學習Java之一萬個為什么(待補充)

Git分支操作 git branch 分支名 git branch -v git checkout -b 分支名 git checkout 分支名 git merge 分支名 git branch -d | -D 分支名Git沖突 git同名文件合并的最基本單位是行。同名文件同一行不同就會發生沖突。 解決辦法&#xff1a;及時溝通&#xff0c;手動更改&…