写点什么

Browser Use 使用教程

作者:测试人
  • 2025-06-20
    北京
  • 本文字数:1341 字

    阅读完需:约 4 分钟

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

  1. AI 驱动决策:通过自然语言交互生成自动化脚本,降低编码门槛;

  2. 动态适配:自动处理验证码、反爬机制及页面结构变化;

  3. 跨平台支持:兼容 Chrome、Firefox 等主流浏览器。


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

1. 安装所需依赖

1.1 基础环境

  • Python 3.8+:推荐使用虚拟环境(如 venv 或 conda)。

  • 浏览器驱动:根据目标浏览器下载对应驱动(如 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 BrowserAgentimport openaiimport 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/login2. 填写用户名:test@example.com3. 填写密码: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-slimCOPY requirements.txt .RUN pip install -r requirements.txtCMD ["python", "main.py"]
复制代码
  • 云服务部署:推荐使用 AWS Lambda 或 Google Cloud Run 实现无服务器化。

5.2 优化与扩展

  • 性能优化

# 启用浏览器缓存复用agent = BrowserAgent(reuse_context=True)
# 并行任务处理from concurrent.futures import ThreadPoolExecutorwith ThreadPoolExecutor(max_workers=5) as executor: executor.map(agent.execute, tasks)
复制代码
  • 异常处理

try:    agent.execute(task)except BrowserTimeoutError:    agent.refresh_page()  # 自动刷新重试
复制代码
  • 扩展功能:集成 langchain 实现复杂对话式自动化。添加 mitmproxy 支持 HTTP 流量监控。

用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
Browser Use 使用教程_人工智能_测试人_InfoQ写作社区