基于大语言模型的浏览器自动化:playwright+browser-use

news/2025/10/29 17:18:22/文章来源:https://www.cnblogs.com/xy-ouyang/p/19174962

基于大语言模型的浏览器自动化:playwright+browser-use

 

 

1、安装nodejs

https://nodejs.org/zh-cn/download 下载 node-v24.11.0-x64.msi

2、安装 playwright

npx playwright install

图片

图片

图片

 

 

3、安装 browser-use 包

首先需要安装了python环境,然后创建 python 虚拟环境

图片

 创建 python 虚拟环境,也可以使用

conda create --name browser_use python=3.11
conda activate browser_use

安装 browser-use 包

pip install browser-use -i https://pypi.tuna.tsinghua.edu.cn/simple

 

4、根据使用的大模型服务,在环境变量设置里配置相应的 API key

OPENAI_API_KEY(gpt-4o 模型)
ANTHROPIC_API_KEY(claude 模型)
GEMINI_API_KEY(gemini 模型)
DEEPSEEK_API_KEY(deepseek 的 r1、v3 模型)

 

5、示例1:浏览器搜索,回答用户问题

需要用到的依赖模块

langchain-openai:提供ChatOpenAI类,用于与OpenAI的聊天模型进行交互
browser-use:包含Agent类,实现智能浏览器自动化功能
asyncio:Python标准库,用于异步编程,无需额外安装
os:Python标准库,提供操作系统接口,无需额外安装
pydantic:提供SecretStr等数据验证功能,用于安全处理敏感信息

安装依赖

pip install langchain-openai pydantic -i https://pypi.tuna.tsinghua.edu.cn/simple

 

 

安装browser-use环境

参考:https://github.com/browser-use/browser-use?tab=readme-ov-file

1. Create environment with uv (Python>=3.11):

uv init

2. Install Browser-Use package:

#  We ship every day - use the latest version!
uv add browser-use
uv sync

执行结果:

PS C:\Users\EDY> uv init
Initialized project `edy`
PS C:\Users\EDY> uv sync
>> uv add browser-use
>> #  We ship every day - use the latest version!
Using CPython 3.13.2 interpreter at: Desktop\work\installtools\python-3.13.2-amd64\python.exe
Creating virtual environment at: .venv
Resolved 1 package in 3ms
Audited in 0.02ms
Resolved 261 packages in 3.31s
Prepared 97 packages in 10.93s
Installed 97 packages in 433ms+ aiofiles==25.1.0+ aiohappyeyeballs==2.6.1+ aiohttp==3.12.15+ aiosignal==1.4.0+ annotated-types==0.7.0+ anthropic==0.72.0+ anyio==4.11.0+ attrs==25.4.0+ authlib==1.6.5+ backoff==2.2.1+ beautifulsoup4==4.14.2+ browser-use==0.9.4+ bubus==1.5.6+ cachetools==6.2.1+ cdp-use==1.4.3+ certifi==2025.10.5+ cffi==2.0.0+ charset-normalizer==3.4.4+ click==8.3.0+ colorama==0.4.6+ cryptography==46.0.3+ distro==1.9.0+ docstring-parser==0.17.0+ frozenlist==1.8.0+ google-api-core==2.28.1+ google-api-python-client==2.185.0+ google-auth==2.42.0+ google-auth-httplib2==0.2.0+ google-auth-oauthlib==1.2.2+ google-genai==1.46.0+ googleapis-common-protos==1.71.0+ groq==0.33.0+ h11==0.16.0+ httpcore==1.0.9+ httplib2==0.31.0+ httpx==0.28.1+ httpx-sse==0.4.3+ idna==3.11+ inquirerpy==0.3.4+ jiter==0.11.1+ jsonschema==4.25.1+ jsonschema-specifications==2025.9.1+ markdown-it-py==4.0.0+ markdownify==1.2.0+ mcp==1.19.0+ mdurl==0.1.2+ multidict==6.7.0+ oauthlib==3.3.1+ ollama==0.6.0+ openai==1.109.1+ pfzy==0.3.4+ pillow==12.0.0+ portalocker==2.10.1+ posthog==6.7.11+ prompt-toolkit==3.0.52+ propcache==0.4.1+ proto-plus==1.26.1+ protobuf==6.33.0+ psutil==7.1.2+ pyasn1==0.6.1+ pyasn1-modules==0.4.2+ pycparser==2.23+ pydantic==2.12.3+ pydantic-core==2.41.4+ pydantic-settings==2.11.0+ pygments==2.19.2+ pyotp==2.9.0+ pyparsing==3.2.5+ pypdf==6.1.3+ python-dateutil==2.9.0.post0+ python-dotenv==1.2.1+ python-multipart==0.0.20+ pywin32==311+ referencing==0.37.0+ reportlab==4.4.4+ requests==2.32.5+ requests-oauthlib==2.0.0+ rich==14.2.0+ rpds-py==0.28.0+ rsa==4.9.1+ screeninfo==0.8.1+ six==1.17.0+ sniffio==1.3.1+ soupsieve==2.8+ sse-starlette==3.0.2+ starlette==0.49.1+ tenacity==9.1.2+ tqdm==4.67.1+ typing-extensions==4.15.0+ typing-inspection==0.4.2+ uritemplate==4.2.0+ urllib3==2.5.0+ uuid7==0.1.0+ uvicorn==0.38.0+ wcwidth==0.2.14+ websockets==15.0.1+ yarl==1.22.0
PS C:\Users\EDY>

3. Get your API key from Browser Use Cloud and add it to your .env file (new signups get $10 free credits):

# .env
BROWSER_USE_API_KEY=your-key

4. Install Chromium browser:

uvx browser-use install

执行结果:

图片

 5. Run your first agent:

from browser_use import Agent, Browser, ChatBrowserUse
import asyncioasync def example():browser = Browser(# use_cloud=True,  # Uncomment to use a stealth browser on Browser Use Cloud
    )llm = ChatBrowserUse()agent = Agent(task="Find the number of stars of the browser-use repo",llm=llm,browser=browser,)history = await agent.run()return historyif __name__ == "__main__":history = asyncio.run(example())

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/950089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git克隆远程仓库后,本地无感切换分支工作的验证

Git客户端克隆远程仓库后如果本地想切换到feature/add-info分支工作,直接切换即可。 关于无感切换的操作,说明如下: 在 Git 2.23+ 版本中,新增了 “隐含创建本地分支” 的功能:当你执行 git checkout feature/add…

2025 年锰钢编织筛网厂家最新推荐榜,技术实力与市场口碑深度解析,筛选优质靠谱供应商振动/滚筒/平筛/黑钢锰钢编织筛网公司推荐

引言 为精准筛选出 2025 年锰钢编织筛网领域优质靠谱的供应商,本次推荐榜测评工作联合矿业装备协会、金属制品工业协会共同开展。测评过程严格遵循 “多维度、重数据、强验证” 原则,从企业综合实力与产品核心竞争力…

P7353 [2020-2021 集训队作业] Tom Jerry 题解

Sol 注意到 T 想赢必须一步一步缩小 J 的移动空间,所以 T 最优只会移动到割点来缩小 J 的移动空间最终让 J 无处可移。 所以我们考虑建出原图的圆方树。 考虑对于一组询问,把 \(a\) 提起来作为根,那么设 \(b\) 是 \…

痞子衡嵌入式:在i.MXRTxxx下使能DMA链式传输可达到SPI从设备接收速率上限50Mbps

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT下使能DMA链式传输可达到SPI从设备接收速率上限50Mbps。最近痞子衡在帮一个 RT600 的 AR 眼镜客户优化 SPI 从设备接收数据的速率,我们知道 …

国产LTCC低通滤波器HT-LFCG-530+实测:完美替代LFCG-530+,5G/WiFi6/车规全场景

国产LTCC低通滤波器HT-LFCG-530+实测:完美替代LFCG-530+,5G/WiFi6/车规全场景封装对比 ① 尺寸:5.03.01.1 mm,与原版游标卡尺测量完全一致,焊盘0.450.65 mm,0.65 mm间距,8Pin,钢网不用改。 ② 重量:16.3 mg v…

C语言 打印菱形图案

先画图,找关系,搞明白关系就会做题了//数量关系 // 3.空数 4.星数 1.val:辅助值 2.层数// * 3=4-1 1 4=mid 1// *** 2=5-3 3 5=mid+1 …

Java并发编程利器:从ConcurrentHashMap到Fork/Join的奇幻之旅

上篇讲了Lock锁、AQS相关的内容,本篇讲一下线程安全的类,拿来即用无需其他操作就能达到线程安全的效果,省力又省心 ~ ~你是否曾为多线程编程中的各种坑而头疼?本文将用生动比喻和实用代码,带你轻松掌握Java并发容…

mysql报错many connections errors

mysql报错many connections errors如上图所示 首先使用可以访问数据库的主机进入数据库,我的mysql在linux系统中直接从Linux系统进入然后重新使用可视化工具进行连接即可!

2025薪酬管理系统推荐:6大主流系统全面对比与选型指南

引言:复杂多变的薪酬挑战与数字化破局之道 在 “降本增效”成为主旋律的2025年,中国企业面临的薪酬管理挑战愈发复杂和严峻。薪酬,作为企业人力资源管理的核心环节,不仅关乎员工的切身利益和组织士气,更是企业合规…

Solon (可替换 SpringBoot)集成 Docker 实战:30分钟搞定轻量级应用容器化部署

本文介绍了如何将Solon框架与Docker快速集成,突出了Solon在启动速度、内存占用和容器化方面的优势。文章从环境准备入手,详细说明了两种Docker打包方式(Maven插件和Dockerfile),提供了完整的配置示例和操作命令,…

vue2 组件封装 el-date-picker 日期

vue2 组件封装 el-date-picker 日期 基本使用都满足包括常用的:时间格式 :type [date,datetime,daterange ....]快捷方式 :日期左侧:如 今天,昨天,一个月前日期日期禁用:禁用日期段其它相关属性custom-date-pi…

我使用FHQ写了线段树2

虽然并没有任何的意义,但是我觉得很有意思,所以记录一下: #include <bits/stdc++.h> #define int long long using namespace std; const int MN=1e6+116; struct Node{int lc, rc, siz, rnd;int val, sum, a…

092_尚硅谷_for循环注意事项和细节(1)

092_尚硅谷_for循环注意事项和细节(1)1.for循环的第二种写法2.for循环的第三种写法_死循环3.for循环的第三种写法_死循环使用break终止循环

详细介绍:【网络通讯安全认证的理解:从密钥签名、数字证书到 HTTPS/TLS 流程】

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

VK36N5D 工作电压 2.2-5.5V 触摸芯片抗干扰5键触摸触控 5路触摸检测IC

VK36N5D具有5个触摸按键,可用来检测外部触摸按键上人手的触摸动作。该芯片具有较 高的集成度,仅需极少的外部组件便可实现触摸按键的检测。 提供了5个1对1输出脚,1个触摸状态输出脚,可通过IO脚选择上电输出电平和输…

魔兽争霸3冰封王座修改器 下载安装教程(图文步骤 + 功能详解)

魔兽争霸3冰封王座修改器下载与安装教程(适配1.24e~1.26版本),完整讲解安装方法、功能用法、快捷键操作、兼容性优化与常见问题解决方案。支持Windows 10 / 11系统,安全稳定。魔兽争霸3冰封王座修改器 下载安装教程…

Softmax回归模型

这段代码是一个完整的 Softmax回归模型 实现,用于解决 Fashion-MNIST数据集的图像分类问题。简单来说,它的作用是:让计算机通过学习大量衣服、鞋子等服饰图片,学会识别新的服饰图片属于哪一类(比如T恤、裤子、运动…

Oracle的connect by level在MySQL中的华丽变身 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

handsontable实现新增删除行(双行)

handsontable实现新增删除行(双行)// 配置方法const tableSettings = computed(() => {return {...hotTableParams,nestedHeaders: false,filters: false,columnSorting: false,height: 358,rowHeaders: false,co…