Browser-use 详细介绍&使用文档

Browser-use 详细介绍&使用文档

一、概述

Browser-use 是一个旨在将 AI “智能体”(Agents)与真实浏览器进行交互的 Python 库,可以轻松实现浏览器自动化。在配合 LLM(如 GPT 系列)使用时,浏览器-use 能够让你的智能体发起对网页的访问、操作页面元素、收集信息、执行脚本等,从而扩展 AI 应用的落地场景。

目前 Browser-use 最低需要 Python 3.11 及以上,才能正常使用其封装的 Playwright 功能。

1. 技术栈:

  • LangChain(AI Agent框架)
  • Playwright(浏览器自动化)
  • dotenv(环境变量 key)
  • 异步I/O架构

2. 流程图

用户任务

LLM 解析

Agent 决策/规划

浏览器动作

数据提取页面信息

Playwright 调用

浏览器实例

模型处理

结构化结果输出

browser-use:语言模型 -> 决策/控制 -> 浏览器执行 -> 数据回传 -> 模型后处理


二、关键特性

1. 简单的 Agent 接口

通过 Agent 类即可快速创建带浏览器交互能力的智能体,赋能 LLM 与网页之间的复杂操作。

1.1. Agent 接口参数
参数名称类型默认值说明
taskstr(必传)代理需要执行的任务描述。
llmBaseChatModel (LangChain Model)(必传)主语言模型,执行对话和工具调用。
controllerobject (Controller 实例)默认Controller自定义函数/工具调用的注册表。可参考“Custom Functions”。
use_visionboolTrue是否启用视觉能力(截图+分析)。如模型支持图像输入,可显著提高网页理解;也会产生额外 token 成本。
save_conversation_pathstr若指定,则会将对话历史保存在该路径下,用于调试或审计。
system_prompt_classtype (自定义 System Prompt 类)默认Prompt 类自定义系统提示词逻辑,参考“System Prompt”定制化说明。
browserBrowser (Browser-use 实例)重用已创建的 Browser 实例;若不提供,则 Agent 每次 run() 时会自动创建并关闭新的浏览器。
browser_contextBrowserContext (Playwright 实例)使用已有的浏览器上下文 (Context)。适合需要维护持久会话 (cookies/localStorage) 的场景。
max_stepsint100允许 Agent 执行的最大步骤数,防止死循环或无限操作。
planner_llmBaseChatModel不启用 Planner规划用语言模型,与主 LLM 分开;可用较小/便宜模型处理高层策略。
use_vision_for_plannerboolTruePlanner 是否能使用视觉功能(若主 LLM 已开启视觉,这里可独立关闭以节省资源)。
planner_intervalint1Planner 模型执行间隔。即每多少步调用一次 Planner 作重新规划。
message_contextstr额外的任务/上下文信息,辅助 LLM 更好理解或执行任务。
initial_actionslist[dict]初始化时要执行的动作列表(无需经 LLM 调用),格式为 {action_name: {...}}。
max_actions_per_stepint10每个步骤里可执行的最大动作数,用于控制 Agent 过度频繁操作。
max_failuresint3允许 Agent 失败的最大次数,超过则停止任务。
retry_delayint (秒)10当遇到限流 (rate limit) 或可重试的错误时,等待多少秒后再次尝试。
generate_gifbool 或 str (路径)False是否录制浏览器过程生成 GIF。为 True 时自动生成随机文件名;为字符串时将 GIF 存储到该路径。

2. 多语言模型支持

可轻松集成 LangChain 提供的各类 LLM(如 OpenAI、Anthropic、Cohere 等)进行高级任务管理。

模型所属/类型
GPT-4oOpenAI
ClaudeAnthropic
AzureAzure OpenAI
GeminiGoogle Generative AI
DeepSeek-V3DeepSeek
DeepSeek-R1DeepSeek
Ollama本地模型 (需安装 Ollama)

3. 基于 Playwright

默认使用 Playwright 进行浏览器的无头启动、页面操作和渲染控制;对常见网页交互场景提供友好的抽象。

4. 云端版 & 本地版

除了本地安装运行外,Browser-use 也提供托管版本,可以直接在云端执行,无需配置本地环境。

5. Gradio UI 测试

内置示例可以利用 Gradio 搭建简易的可视化界面,方便开发者快速测试并可视化浏览器自动化流程。


三、环境准备

1. Python 版本

  • 需要 Python 3.11 或更高版本。
  • 推荐在独立虚拟环境(venv)或管理工具(如 uv)中配置环境。
1.1. 推荐使用 pyenv 管理 python

Github:https://github.com/pyenv/pyenv

# pyenv 根目录
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

# 初始化
eval "$(pyenv init -)"

2. 安装方法

2.1. 安装 browser-use
pip3 install browser-use
2.2. 安装 Playwright
playwright install
  • 此操作会自动下载 Chromium 无头浏览器,用于后续的浏览器自动化。
2.3. 配置 LLM API Keys(可选)
  • 在 .env 文件中填写相应的 OPENAI_API_KEY=、ANTHROPIC_API_KEY= 等 Key。
OPENAI_API_KEY=sk-xxxxxxx
  • 如果使用其他 LLM,需要参考 LangChain 文档或对应服务提供的说明进行配置。

四、Demo 示例

1. 简单示例

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import asyncio
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from browser_use import Agent

load_dotenv()

llm = ChatOpenAI(model="gpt-4o")

async def main():
    agent = Agent(
        task="打开 https://cn.vuejs.org/guide/essentials/computed,获取页面里所有的 h2 标签文本及所有的 a 标签文本(以及它的 href)",
        llm=llm,
    )
    result = await agent.run()
    print('result:',result)

if __name__ == "__main__":
    asyncio.run(main())
1.1. 核心流程:
  1. 从 .env 中读取 OPENAI_API_KEY 等信息,初始化 ChatOpenAI。
  2. 创建一个 Agent,指定 task 即描述智能体要完成的任务。
  3. 调用 agent.run() 发起执行,包括浏览器自动化与 LLM 结合的流程。

五、常见操作

1. 修改 LLM 模型

llm = ChatOpenAI(model="gpt-3.5-turbo")

llm = ChatOpenAI(model="gpt-4o")

2. 在 .env 中设置 API Key

OPENAI_API_KEY=sk-xxxx
ANTHROPIC_API_KEY=xxxxxx

如果你还需使用其他模型(如 Cohere、HuggingFace Hub),可一并配置对应的 Key,并在 Python 脚本中初始化相应的 LLM 对象。

3. 官方文档示例

docs.browser-use.com/introduction 可以找到更多场景示例,比如如何定制 browser-use 的 Tools、配合 PythonREPLTool 扩展执行 Python 脚本等。


六、UI 测试方式

如果你想通过简单的 UI(如 Gradio)来测试 Browser-use,官方示例提供了 examples/ui/gradio_demo.py。

1. 安装 Gradio

uv pip install gradio

2. 运行示例

python examples/ui/gradio_demo.py

打开终端提示的地址,就能看到一个简易的 web 界面,在界面中输入 task 等信息测试智能体。


七、常见问题 & 解决思路

  • 报错:playwright not installed 或 executable path not found
    • 请确认已执行 playwright install chromium,且安装成功。
  • Python 版本过低
    • Browser-use 要求 Python >= 3.11,如果你使用的是 3.10 或更低版本,需要升级环境。
  • LLM 调用失败
    • 检查是否在 .env 中填写了正确的 API key,或你的 Key 是否仍在有效期内。
  • UI Demo 启动后无法访问
    • 可能是端口占用,或者 Gradio 版本过旧。尝试更新 gradio 或换一个端口。
  • 长时间卡住/超时
    • 检查网络环境,LLM 请求或浏览器加载是否耗时过长。

八、总结

Browser-use 让 AI 与浏览器的结合变得更便捷,能够快速构建出“会浏览网页、抓取信息、进行动态交互”的智能体。只需简单的配置与几行代码,就能让 LLM 自动处理网页操作,为项目带来更多可能性。

  • 使用 Python >= 3.11;
  • 安装并配置好 Playwright;
  • 在主代码中初始化 Agent 并提供 LLM;
  • 在 .env 中存放 API Keys;

九、参考

原创作者: risheng 转载于: https://www.cnblogs.com/risheng/p/18792927
### 关于 Browser-Use 的调试与使用教程 Browser-Use 是一种基于 AI 技术实现浏览器自动化的工具,其核心功能在于通过模拟真实用户的操作行为来完成各种任务,例如自动化测试或数据抓取[^1]。为了更好地理解和掌握该工具的调试方法以及实际应用技巧,以下是详细的说明: #### 一、安装与环境配置 在开始调试之前,需确保已正确安装 Browser-Use 及其依赖项。可以通过以下命令克隆仓库并安装必要的包: ```bash git clone https://github.com/browser-use/browser-use.git cd browser-use npm install ``` 如果遇到任何依赖问题,请查阅官方文档中的常见问题解答部分。 #### 二、基础调试流程 Browser-Use 提供了一套灵活的 API 接口用于控制浏览器的行为。对于初学者来说,可以从简单的页面加载和交互入手。例如,在启动浏览器实例后执行基本的操作如下所示: ```javascript const { launch, goto } = require('browser-use'); (async () => { const browser = await launch(); // 启动浏览器 const page = await browser.newPage(); // 打开新标签页 await goto(page, 'https://example.com'); // 导航到目标网站 console.log(await page.title()); // 获取当前网页标题 await browser.close(); // 关闭浏览器 })(); ``` 上述代码展示了如何初始化一个浏览器会话,并访问指定 URL 地址的同时打印出页面标题[^2]。 #### 三、高级特性支持 除了常规的功能外,Browser-Use 还具备一些更强大的能力,比如处理动态内容加载、表单填写提交等复杂场景下的需求。下面列举几个常用选项及其作用: - **等待特定条件满足后再继续运行** 利用 `waitForSelector` 或者 `waitForFunction` 方法可以有效解决异步渲染引发的数据获取延迟难题。 ```javascript await page.waitForSelector('#dynamic-content'); let contentText = await page.$eval('#dynamic-content', el => el.textContent); console.log(contentText); // 输出动态生成的内容 ``` - **捕获异常情况以便及时调整策略** 当某些预期之外的事情发生时(如网络错误),合理设置超时时间或者重试机制能够提高脚本稳定性。 ```javascript try { await Promise.race([ page.goto('http://nonexistent-site'), new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), 5000) ) ]); } catch (error) { console.error(`Navigation failed due to ${error.message}`); } ``` #### 四、实践案例分析 根据已有资料提到的一次具体应用场景——即采用此框架完成某类公开资源的信息采集工作,我们可以进一步探讨其中涉及的技术要点。假设目标站点结构较为简单,则整个过程大致分为以下几个方面展开讨论即可覆盖大部分情形下所需考虑的因素。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值