一文掌握 browser-use:基于 DeepSeek 的浏览器自动化实战

150 阅读4分钟

一、项目定位与技术价值

1.1 智能体开发新范式

Browser-Use 作为开源 AI 自动化工具,通过集成 DeepSeek 等大模型与 Playwright 浏览器引擎,实现自然语言驱动的浏览器操作。其技术价值体现在:

低代码开发:仅需自然语言指令即可生成自动化脚本

多模态交互:融合 DOM 解析(精度99%)+视觉识别

企业级扩展:支持私有化部署与多智能体协同

1.2 与 DeepSeek 的深度整合

Browser-Use 对 DeepSeek 的适配优势:

模型微调支持:可针对电商、金融等场景优化提示词

API 调用优化:支持流式响应与长文本处理

成本控制:DeepSeek 推理成本仅为 GPT-4 的 1/5

二、核心架构解析

2.1 模块化设计

模块核心功能DeepSeek 整合点
Agent任务规划与状态管理调用 deepseek-chat 生成操作链
Controller动作注册与执行解析模型输出的 JSON 指令
Browser浏览器实例控制结合视觉模型处理验证码
DOM元素定位与信息提取生成 XPath 供模型决策

2.2 执行流程时序

  1. 初始化阶段:

加载 DeepSeek API 密钥

启动带 Cookie 的 Chrome 实例

  1. 决策阶段:
# 模型输出示例  
{  
  "action": "click_element",  
  "params": {"xpath": "//button[@id='submit-order']"}  
} 
  1. 执行阶段:

Playwright 执行点击/输入等操作

失败时自动重试(最大重试次数3次)

三、环境配置指南

3.1 基础安装

# 创建 Python 3.11 虚拟环境  
conda create -n browser_use python=3.11  
conda activate browser_use  

# 安装核心依赖  
pip install browser-use playwright -i https://pypi.tuna.tsinghua.edu.cn/simple  
playwright install chromium  # 安装 Chromium 浏览器

3.2 DeepSeek 配置

  1. 获取 API Key:
  • 登录 DeepSeek 控制台
  1. 配置环境变量:
echo "DEEPSEEK_API_KEY=sk-your-key-here" >> .env

四、实战案例:电商自动下单

4.1 场景设计

完成淘宝购物全流程:

  1. 登录账号(使用本地保存的 Cookie)
  2. 搜索「机械键盘」并筛选「销量排序」
  3. 选择第一个商品加入购物车
  4. 提交订单并填写收货地址

4.2 代码实现

from langchain_openai import ChatOpenAI  
from browser_use import Agent, BrowserConfig, Browser  
import asyncio  
import os  

# 配置本地 Chrome 路径(需提前登录淘宝)  
config = BrowserConfig(  
    chrome_instance_path="C:\Program Files\Google\Chrome\Application\chrome.exe",  
    headless=False  # 显示浏览器界面(网页10)  
)  

async def taobao_order():  
    browser = Browser(config=config)  
    llm = ChatOpenAI(  
        base_url="https://api.deepseek.com/v1",  
        model="deepseek-chat",  
        api_key=os.getenv("DEEPSEEK_API_KEY")  
    )  

    agent = Agent(  
        browser=browser,  
        task='''  
        1. 打开 taobao.com 并等待登录完成  
        2. 搜索"机械键盘",按销量排序  
        3. 选择第一个商品进入详情页  
        4. 点击"加入购物车"  
        5. 进入购物车提交订单  
        6. 选择默认地址并支付  
        ''',  
        llm=llm,  
        max_steps=20  # 最大执行步骤(网页6)  
    )  

    await agent.run()  
    await browser.close()  

asyncio.run(taobao_order())  

4.3 关键技术点

登录态保持:利用已登录的 Chrome 实例绕过验证

元素定位策略:

# DeepSeek 生成的 XPath  
"//div[contains(text(),'销量')]/ancestor::button"  

异常处理:

商品缺货时自动选择下一商品

支付失败时截图保存

五、进阶应用:数据采集与RAG

5.1 竞品价格监控系统

task = '''  
1. 打开 jd.com 搜索"无线鼠标"  
2. 采集前10个商品的:  
   - 名称  
   - 价格  
   - 评论数  
3. 保存为 CSV 文件  
'''  

# 输出数据结构化  
class Product(BaseModel):  
    name: str  
    price: float  
    reviews: int  

controller = Controller(output_model=List[Product])

5.2 技术增强点

动态页面处理:

await page.wait_for_selector("//div[@class='price']", timeout=5000)  

反爬对抗:

  • 随机滑动速度模拟
  • IP 轮换机制(需配合代理池)

六、常见问题排查

问题现象解决方案
DeepSeek 返回内容为空检查 .env 文件密钥格式
浏览器无法启动确认 Chrome 路径与版本匹配
元素定位失败启用 use_vision=True 增强识别
执行速度过慢设置 headless=True 启用无头模式

推荐阅读

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

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

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

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

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

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

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

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

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

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