Browser Use 使用教程

0 阅读3分钟

Browser Use 是一款开源的浏览器自动化工具,通过集成AI智能体(如OpenAI的GPT模型),实现了对网页浏览、数据抓取、表单填写等操作的智能化控制。相较于传统自动化工具(如Selenium、Puppeteer),Browser Use 的核心优势在于:

  1. AI驱动决策:通过自然语言交互生成自动化脚本,降低编码门槛;
  2. 动态适配:自动处理验证码、反爬机制及页面结构变化;
  3. 跨平台支持:兼容Chrome、Firefox等主流浏览器。

本文将详细介绍从环境搭建到部署优化的完整流程。

1. 安装所需依赖

1.1 基础环境

  • Python 3.8+ :推荐使用虚拟环境(如venvconda)。
  • 浏览器驱动:根据目标浏览器下载对应驱动(如ChromeDriver)。

1.2 核心库安装

pip install browser-use playwright openai python-dotenv
  • Playwright:提供无头浏览器控制能力。
  • OpenAI:调用GPT模型生成自动化策略。
  • python-dotenv:管理环境变量(如API密钥)。

2. 生成OpenAI密钥

  1. 访问OpenAI平台,注册账号并创建API密钥。
  2. 在项目根目录创建.env文件,存储密钥:OPENAI_API_KEY=sk-xxx...

3. 编写代码

3.1 初始化浏览器与AI代理

from browser_use import BrowserAgent
import openai
import os

# 加载环境变量
openai.api_key = os.getenv("OPENAI_API_KEY")

# 初始化AI驱动的浏览器代理
agent = BrowserAgent(
    browser="chrome",  # 支持chrome/firefox/webkit
    headless=True,     # 无头模式
    ai_model="gpt-4o"  # 指定AI模型
)

3.2 定义自动化任务

通过自然语言描述任务,AI将生成执行计划:

task = """
1. 访问 https://example.com/login
2. 填写用户名:test@example.com
3. 填写密码:SecurePass123!
4. 点击登录按钮
5. 提取登录后的欢迎消息
"""

# 生成并执行自动化脚本
result = agent.execute(task)
print(result["welcome_message"])  # 输出提取的文本

3.3 高级功能:动态适配反爬

# 处理验证码(示例:调用AI生成OCR逻辑)
def solve_captcha(page):
    captcha_image = page.locator("img#captcha").screenshot()
    prompt = f"识别以下验证码图片内容:{captcha_image}"
    response = openai.ChatCompletion.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": prompt}]
    )
    return response.choices[0].message.content

agent.register_hook("captcha", solve_captcha)

4. 运行代码

python main.py

常见问题排查

  • 驱动路径错误:通过playwright install自动安装依赖。
  • API限流:在.env中添加OPENAI_PROXY配置代理。

5. 部署与优化

5.1 部署AI代理

  • Docker容器化
FROM python:3.9-slim
COPY requirements.txt .
RUN pip install -r requirements.txt
CMD ["python", "main.py"]
  • 云服务部署:推荐使用AWS Lambda或Google Cloud Run实现无服务器化。

5.2 优化与扩展

  • 性能优化
# 启用浏览器缓存复用
agent = BrowserAgent(reuse_context=True)

# 并行任务处理
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(max_workers=5) as executor:
    executor.map(agent.execute, tasks)
  • 异常处理
try:
    agent.execute(task)
except BrowserTimeoutError:
    agent.refresh_page()  # 自动刷新重试
  • 扩展功能
    • 集成langchain实现复杂对话式自动化。
    • 添加mitmproxy支持HTTP流量监控。

推荐阅读

软件测试/测试开发丨常见面试题与流程篇(附答案)

软件测试/测试开发丨学习笔记之Allure2测试报告

软件测试/测试开发丨Pytest测试用例生命周期管理-Fixture

软件测试/测试开发丨Python学习笔记之基本数据类型与操作

软件测试/测试开发丨学习笔记之列表、元组、集合

软件测试/测试开发丨Python常用数据结构-学习笔记

软件测试/测试开发丨Python控制流-判断&循环

软件测试/测试开发丨Python学习笔记之内置库科学计算、日期与时间处理

软件测试/测试开发丨面试题之软素质与反问面试官篇(附答案)

软件测试/测试开发丨iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践