Browser Use 是一款开源的浏览器自动化工具,通过集成AI智能体(如OpenAI的GPT模型),实现了对网页浏览、数据抓取、表单填写等操作的智能化控制。相较于传统自动化工具(如Selenium、Puppeteer),Browser Use 的核心优势在于:
- AI驱动决策:通过自然语言交互生成自动化脚本,降低编码门槛;
- 动态适配:自动处理验证码、反爬机制及页面结构变化;
- 跨平台支持:兼容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密钥
- 访问OpenAI平台,注册账号并创建API密钥。
- 在项目根目录创建
.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流量监控。
- 集成
推荐阅读
软件测试/测试开发丨Pytest测试用例生命周期管理-Fixture
软件测试/测试开发丨Python学习笔记之基本数据类型与操作