跳转到内容

浏览器自动化browser-use

利用AI进行浏览器自动化操作,介绍browser-use和browserbase,尤其是browser-use强大的能力,结合gemini-2.0可以做自动化的agent和deep research,开源免费,而且自动生成的结果已经相当可用了。

browser-use项目

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

提供一个 Web UI 来运行和管理浏览器中的 AI Agent。非常重磅的开源产品,应该是关于AI与浏览器自动化最重要的一个开源项目。

browser-use 的Web UI版本。可视化,更加易用强大。

Stagehand extends the power of Playwright, allowing you to reliably automate browsers in natural language.

Open Operator 被定位为 OpenAI Operator 的开源替代品,用于自动化浏览器任务。

Playwright enables reliable end-to-end testing for modern web apps. It allows testing Chromium, Firefox and WebKit with a single API.

browser-use使用

参考官网:https://github.com/browser-use/browser-use

主要步骤:

bash
uv 虚拟环境并激活
uv pip install browser-use
playwright install

以gemini为示例的脚本:

py
from langchain_google_genai import ChatGoogleGenerativeAI
from browser_use import Agent
from pydantic import SecretStr
import os
import asyncio
from dotenv import load_dotenv
load_dotenv()

api_key = os.getenv("GEMINI_API_KEY")

# Initialize the model
llm = ChatGoogleGenerativeAI(model='gemini-2.0-flash', api_key=SecretStr(os.getenv('GEMINI_API_KEY')))

async def main():
    agent = Agent(
        task="查看cored dumped的视频主页,打开第一个视频,然后获取点赞的数量",
        llm=llm,
    )
    result = await agent.run()
    print(result)

asyncio.run(main())

注意事项

  • 记得代理不能使用socks方式,会一直报错!改成http就可以了。如果不确定,在shell执行echo $http_proxy
  • gemini模型并不是都能支持,需要尝试,gemini-2.0-flash可以用。
  • 虚拟环境里面不要使用pip,要用uv pip

这里的gemini模型api用的是langchain-google-genai:https://ai.google.dev/gemini-api/docs/models/gemini?hl=zh-cn

截止2025.02.18最新支持gemini-2.0-flash。

与cherry里使用的api不一样,那个支持的多一点。

关于api限速与收费:https://ai.google.dev/gemini-api/docs/rate-limits?hl=zh-cn

api提示库:https://ai.google.dev/gemini-api/prompts?hl=zh-cn

web-ui安装

私有化部署-本地安装:

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

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
或者
pip config set global.index-url https://pypi.doubanio.com/simple/
pip install uv
uv venv --python 3.12.7
source .venv/bin/activate
uv pip install -r requirements.txt
playwright install
提示报错需要安装一些依赖,如
sudo apt-get install libavif13
直到playwright install不再报错

cp .env.example .env
打开 .env 并添加 API 密钥和其他设置

python webui.py --ip 0.0.0.0 --port 7788
Open http://localhost:7788 in your browser

安装提示

pip记得配置国内源。

playwright可能会安装很久,可以试试代理playwright.dev,microsoft.com可能可以快一点。官方默认是多域名节点下载,无法下载会更换到另一个。

--ip 要用0.0.0.0。127.0.0.1和localhost可能报错。

开源主页就有安装教程:https://github.com/browser-use/web-ui

私有化部署-docker安装:

bash
git clone https://github.com/browser-use/web-ui.git
cd web-ui
cp .env.example .env
打开 .env 并添加 API 密钥和其他设置

# Build and start the container with default settings (browser closes after AI tasks)
docker compose up --build

# Or run with persistent browser (browser stays open between AI tasks)
CHROME_PERSISTENT_SESSION=true docker compose up --build

Open http://localhost:7788 in your browser

VNC Viewer (for watching browser interactions): Open http://localhost:6080/vnc.html
Default VNC password: "youvncpassword"
Can be changed by setting VNC_PASSWORD in your .env file

总结,虽然docker管理起来比较统一方便,但这个项目的使用,其实是本地安装更加简洁直观,尤其是当你的ollama是本地部署的时候。

本地使用虚拟环境部署,然后设置命令启动就可以很方便地启动:

bash
alias openwebui='conda activate open-webui && cd ~/open-webui/web-ui/ && python webui.py --port 7788'

web-ui使用

设置,如果是接入gemini-2.0,这里不用修改,gemini-2.0是支持视觉识别的。

模型选择,选择gemini-2.0系列,其他可以不改,api key需要配置在环境变量中。

核心功能之-agent任务执行:

核心功能之-Deep Research:

Results和Recording是结果展示和录屏。

配置可以保存和导出导入:

run agent示例

txt
查看cored dumped的视频主页,打开第一个视频,输出这个视频的名称,还有这个视频的点赞的数量。

输出格式为:视频名称+点赞数。

结果:

txt
The video title is 'How Hardware Assist Software When Multitasking' and the number of likes is '3.7K'.

deep research示例

任务1:

txt
撰写一份关于检索增强生成(Retrieval-Augmented Generation,RAG)的报告,包括其起源,

当前进展和未来前景,并以相关模型和技术的例子为依据。

报告应反映出原创性的见解和分析,而不仅仅是对现有文献的总结。报告要求使用中文输出。

生成的结果在这里

任务2:

txt
Anthropic开源了模型上下文协议(Model Context Protocol, MCP)。

这是一个用于连接AI助手与数据所在系统的新标准,包括内容仓库、商业工具和开发环境。

其目标是帮助前沿模型产生更好、更相关的响应。

撰写一份关于MCP的报告,包括其起源,当前进展和未来前景,并以相关模型和技术的例子为依据。

报告应反映出原创性的见解和分析,而不仅仅是对现有文献的总结。报告要求使用中文输出。

生成的结果在这里

提示

deep research是一个非常强大的功能,但是需要较长的时间(可能5-10分钟)才能生成结果,所以需要耐心等待。

提示词的质量也很重要,需要根据自己的需求来写,尽量描述准确,要求明确。