免费POC, 零成本试错
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


我要投稿

别再手动复制粘贴了:让AI像人一样逛网站,定价一夜跑完

发布日期:2026-01-14 08:15:06 浏览次数: 1533
作者:多模态智能体

微信搜一搜,关注“多模态智能体”

推荐语

周五晚上老板突然要求收集50个竞品定价,传统方法耗时费力,直到发现browser-use这个神器——让AI像人类一样浏览网站,3小时写完脚本,一晚上自动完成任务!

核心内容:
1. 传统收集竞品定价方案的三大痛点
2. browser-use如何实现AI自主操作浏览器
3. 实战经验分享与适用场景分析

杨芳贤
53AI创始人/腾讯云(TVP)最具价值专家

周五晚上 7 点,我刚把外卖拆开,手机“叮”一声。

老板发来一句话: 

小王,周一要开会,你去收集下 50 个竞品的定价策略。”

我盯着屏幕愣了两秒,脑子里已经开始自动播放画面:打开 50 个网站、挨个找 Pricing、复制粘贴、整理表格、截图留证……别说周末了,我今晚都别想睡。

更要命的是,传统方案我都试过:

  • 写爬虫?不少 SaaS 官网套了 Cloudflare,反爬一上来就把你当“坏人”。

  • 纯手动?不是做不完,是做完人就没了。

  • RPA 录制?看起来优雅,实际一改版就报废,维护成本比写代码还高。

那一刻我突然意识到:这不是“能不能做”的问题,是“有没有更像人类的方式做”。

然后我刷到一个东西——browser-use

我第一反应是:这玩意儿是不是又是那种“宣传视频里很丝滑,自己跑起来像抽风”的工具? 

但我抱着“死马当活马医”的心态装了装。

结果很离谱:我花了大概 3 小时写完脚本,AI 自己跑了一晚上;周六早上醒来,数据已经躺在 Excel 里了。

甚至还顺带把每家套餐差异做了个简单归类,开会材料直接能用。

所以我想把这次经历写下来:不是炫技,也不是种草贴——就是一份真正在业务里能落地的记录:怎么用、怎么写、哪里会翻车、什么场景别碰。

一、一个真实的周五晚上

1.1 场景重现

  • 老板突然发来消息:“小王,周一要开会,你去收集下 50 个竞品的定价策略。”

  • 我的内心 OS:周五晚上 7 点,这是要我手动打开 50 个网站一个个复制粘贴?

  • 传统方案的困境

    • 爬虫?很多网站有反爬

    • 手动?累死我也做不完

    • RPA 工具?录制脚本太繁琐,网站一改版就失效

1.2 然后我发现了 browser-use

  • 第一反应:这玩意儿真能让 AI 自己操作浏览器?

  • 半信半疑装上试试

  • 结果:3 小时写完代码,AI 自己跑了一晚上,周六早上醒来数据已经躺在 Excel 里

1.3 为什么要写这篇文章

  • 不是来吹牛的,是真的解决了我的问题

  • 分享完整的踩坑经验和实战代码

  • 告诉你哪些场景适合用,哪些不适合

二、browser-use 到底是个什么东西?

2.1 一句话说清楚

把 LLM(大语言模型)装进浏览器里,让 AI 像你一样点击、输入、滚动页面,还能自己决定下一步该干什么。

你可以把它理解成:你不是在写“爬虫规则”,而是在雇一个会用浏览器的实习生。你只需要把任务说清楚,它自己去找按钮、点链接、翻页、抓信息。

2.2 和传统工具的对比

【传统爬虫】
你:写正则表达式,找XPath,处理反爬
坏处:网站改版就废了
【RPA工具(如UiPath)】
你:录制每一步操作
坏处:不灵活,遇到验证码就卡住
【browser-use】
你:告诉AI"去某网站找价格"
AI:自己分析页面,点击按钮,填表单,提取数据

2.3 核心能力(用人话说)

  • 看懂网页:把 HTML 渲染成 AI 能理解的结构

  • 自主决策:不需要你写 if-else,AI 自己判断要点哪个按钮

  • 容错性强:页面结构变了,AI 会自适应

  • 多步骤任务:能完成“登录→搜索→翻页→提取”这种复杂流程

三、先别急着装,我们聊聊原理(5 分钟看懂)

3.1 整个系统长什么样

【你的指令】
    ↓
【LLM大脑(GPT-4/Claude)】
    ↓
【browser-use中间件】
    ↓
【Playwright控制浏览器】
    ↓
【真实的Chrome窗口】

它的思路很直白:LLM 负责“想”,Playwright 负责“做”。browser-use 做中间翻译:把网页“整理成 AI 看得懂的样子”,再把 AI 的动作变成真实的点击/输入。

3.2 关键流程拆解(配流程图)

第 1 步:AI“看”网页

  • 不是直接读 HTML 源码(太长了,LLM 吃不消)

  • 用 Accessibility Tree(无障碍树)简化页面结构

  • 只保留可交互元素:按钮、输入框、链接

举个例子:

```

原始HTML:3000行

简化后:

  • Button: "登录" (id=login-btn)

  • Input: "用户名" (id=username)

  • Input: "密码" (id=password)

  • Link: "忘记密码" (id=forgot)

**第 2 步:AI 决策**  
LLM 看到简化后的页面 + 你的目标,然后判断下一步:  
比如“要登录,先填用户名”,输出动作:`fill(id=username, value="myname")`
**第 3 步:执行动作**  
browser-use 把动作翻译成 Playwright 命令,真实操作浏览器,并把截图/状态回传给 AI:“我已经填好用户名了。”
**第 4 步:循环迭代**  
AI 看新页面继续做下一步,直到任务完成。
### 3.3 为什么这个设计很聪明?
- **省 Token**:不喂全部 HTML 给 LLM  
- **提高准确率**:只让 AI 关注能操作的元素  
- **适应性强**:网页改版了,AI 往往还能找到“登录按钮”这类关键点
---
四、10 分钟上手:从安装到第一个脚本跑起来
 4.1 环境准备(别慌,很简单)
你需要:  
- Python 3.11+(建议 3.12)  
- 一个 OpenAI API Key 或 Claude API Key  
- 5 分钟耐心
安装命令:
```bash
# 1. 安装browser-use
pip install browser-use
# 2. 安装Playwright(控制浏览器的底层库)
playwright install chromium
# 3. 装个辅助库(可选,方便异步操作)
pip install asyncio

常见问题:

  • “playwright install 失败”:多半网络问题,挂代理或换源

  • “chromium 下载慢”:可以试 playwright install --with-deps chromium

4.2 第一个脚本:让 AI 帮你搜东西

场景:我想知道 GitHub 上 browser-use 有多少 star

```python

import asyncio

from langchain_openai import ChatOpenAI

from browser_use import Agent

async def main():

    llm = ChatOpenAI(

        model="gpt-4o",

        api_key="你的API Key"

    )

    agent = Agent(

        task="去GitHub搜索browser-use项目,告诉我有多少个star",

        llm=llm

    )

    result = await agent.run()

    print(result)

asyncio.run(main())

```

运行效果基本是“看热闹式震撼”: 

Chrome 自动打开 → 进 GitHub → 搜索 → 点项目 → 找 star → 回答你。

第一次跑的注意事项:

  • Chrome 会弹出来,别关掉,那是 AI 在工作

  • 速度取决于网速和模型响应,一般 20–30 秒

  • 如果你在公司网环境,偶尔会卡在 GitHub 的验证页面,这不是你的错

4.3 加点料:把数据保存下来

import asyncio
import json
from langchain_openai import ChatOpenAI
from browser_use import Agent
async def main():
    llm = ChatOpenAI(model="gpt-4o")
    agent = Agent(
        task="""
        去GitHub搜索browser-use,提取以下信息:
        1. Star数量
        2. Fork数量
        3. 最近一次提交时间
        把结果保存成JSON格式
        """,
        llm=llm
    )
    result = await agent.run()
    with open("github_data.json", "w", encoding="utf-8") as f:
        json.dump(result, f, indent=2, ensure_ascii=False)
    print("数据已保存到 github_data.json")
asyncio.run(main())

这里有个小经验:你越明确它输出什么格式,后面越省时间。别指望 AI 自动替你“整理成你想要的样子”,你得提前把标准定好。

五、实战案例:解决真实业务问题

5.1 案例 1:竞品价格监控(我周五遇到的问题)

需求描述:

  • 每周监控 50 个竞品 SaaS 的定价

  • 记录价格变化

  • 自动发送报告

核心脚本(先跑通 5 个再扩大,别一上来就 50 个并发把自己封了):

```python

import asyncio

from browser_use import Agent

from langchain_openai import ChatOpenAI

import pandas as pd

from datetime import datetime

competitors = [

    {"name": "Notion", "url": "https://notion.so/pricing"},

    {"name": "Airtable", "url": "https://airtable.com/pricing"},

]

async def scrape_competitor(competitor):

    llm = ChatOpenAI(model="gpt-4o")

    agent = Agent(

        task=f"""

        访问 {competitor['url']}

        提取所有付费套餐的价格,格式:

        {{

            "套餐名称": "价格",

            "套餐名称2": "价格2"

        }}

        """,

        llm=llm

    )

    result = await agent.run()

    return {

        "competitor": competitor["name"],

        "pricing": result,

        "timestamp": datetime.now()

    }

async def main():

    tasks = [scrape_competitor(c) for c in competitors[:5]]

    results = await asyncio.gather(*tasks)

    df = pd.DataFrame(results)

    df.to_excel(f"pricing_{datetime.now().strftime('%Y%m%d')}.xlsx", index=False)

    print("抓取完成!")

asyncio.run(main())

```

实际效果(以我当时的数据为例):

  • 5 个网站,8 分钟左右跑完

  • Cookie 弹窗、订阅弹窗大多数能自己处理

  • 准确率 90%+(剩下那 10% 通常是页面设计太“反人类”)

踩坑记录(真踩过):

  • 坑 1:并发太高被 Cloudflare 拦 → 降并发 + 每个任务加随机间隔

  • 坑 2:有些网站要点“See Pricing”才显示价格 → task 里写清楚“如果没看到价格先找入口”

  • 坑 3:价格格式不统一 → 让它按 JSON 输出,并要求统一币种/周期(例如统一成“USD/月”)

5.2 案例 2:招聘信息批量收集

场景:HR 让你去 Boss 直聘收集 “AI 工程师” 岗位薪资范围

```python

async def scrape_jobs():

    llm = ChatOpenAI(model="gpt-4o")

    agent = Agent(

        task="""

        1. 访问 Boss直聘

        2. 搜索"AI工程师"

        3. 提取前30个岗位的:公司名、薪资、要求

        4. 保存为CSV格式

        """,

        llm=llm

    )

    result = await agent.run()

    return result

```

实际心得:

  • 登录最好手动做,拿 Cookie 给它用(不然验证码能把你折磨到怀疑人生)

  • 滚动加载的页面,要写明“向下滚动直到加载 30 条”

  • 数据清洗还是要你自己过一遍,尤其是岗位标题/薪资这种花样很多

5.3 案例 3:自动化测试(我的副业)

场景:测试自己网站表单提交流程

```python

async def test_form_submission():

    agent = Agent(

        task="""

        1. 访问 http://localhost:3000/contact

        2. 填写表单:

           - 姓名:Test User

           - 邮箱:test@example.com

           - 留言:This is a test message

        3. 点击提交

        4. 检查是否出现"提交成功"提示

        5. 截图保存为 test_result.png

        """

    )

```

比 Selenium 香的点很现实:

  • 不用写一堆定位器

  • 页面小改版不至于全军覆没

  • 你可以用“人说的话”写用例,迭代速度很快

六、进阶技巧:让 AI 更聪明

6.1 优化 Task 描述(最重要)

差的写法:

```python

task = "帮我抓点数据"

```

好的写法(像在带实习生):

```python

task = """

目标:提取Amazon商品评论

步骤:

  1. 访问 {product_url}

  2. 滚动到评论区

  3. 点击"查看更多评论"按钮3次

  4. 提取前50条评论的:星级、日期、内容

  5. 返回JSON格式:[{"rating": 5, "date": "2024-01-01", "text": "..."}]

"""

```

总结一句:写清楚步骤 + 写清楚停止条件 + 写清楚输出格式,成功率会直接上一个台阶。

6.2 处理复杂交互

下拉菜单、日期选择器这类“人类觉得简单,脚本写起来很烦”的交互,反而是它的舒适区:

```python

task = """

  1. 访问携程机票预订页

  2. 选择出发地:北京(从下拉菜单选择)

  3. 选择目的地:上海

  4. 选择日期:2024年3月15日(使用日期选择器)

  5. 点击搜索

  6. 提取最便宜的3个航班信息

"""

```

6.3 错误处理和重试

from browser_use import Agent, BrowserConfig
agent = Agent(
    task="...",
    llm=llm,
    browser_config=BrowserConfig(
        headless=False,
        disable_security=True,
    ),
    max_actions_per_step=10,
)
try:
    result = await agent.run()
except Exception as e:
    print(f"执行失败:{e}")
    await agent.browser.screenshot(path="error.png")

我的经验是:调试阶段别 headless。你看着它哪里卡住,比盲猜强太多。

6.4 成本控制(重要)

Token 消耗大概是这样的(按常见任务粗算):

  • 每一步操作:~1000 tokens(页面简化 + 决策)

  • 平均一个任务:10–20 步

  • 单次任务成本:大概 $0.02–0.05(用 GPT-4o)

省钱技巧:

  • 简单任务用 gpt-4o-mini

  • temperature 设 0,提高稳定性

  • 批量任务尽量复用流程,减少“无意义探索”

from langchain_openai import ChatOpenAI
llm = ChatOpenAI(
    model="gpt-4o-mini",
    temperature=0
)


七、哪些场景适合用?哪些不适合?

7.1 ✅ 适合的场景

1)数据采集(最佳场景)

  • 竞品监控、招聘信息收集、电商价格对比、新闻汇总

2)自动化测试

  • E2E、回归、UI 交互测试

3)重复性操作

  • 表单批量填写、定期报告生成(合法合规前提下)

4)探索性任务

  • “帮我找出这个行业的 Top10 公司”

  • “对比这三个工具的功能差异”

7.2 ❌ 不适合的场景

1)高频实时任务

  • 每秒级抓取,用传统爬虫更合适(LLM 反应慢,成本也高)

2)结构化且稳定的数据提取

  • 如果页面结构固定,BeautifulSoup/接口抓取更快更便宜

  • browser-use 的优势是“灵活”,不是“极致效率”

3)强验证码场景

  • 图片验证码基本别指望

  • 滑块偶尔能过,但不稳定,业务上不可靠

4)违法违规操作

  • 别拿它做灰产

  • 尊重 robots.txt 和网站条款

八、常见问题(我踩过的坑)

8.1 “AI 一直在点同一个按钮,停不下来”

原因:任务描述不清楚,AI 不知道什么时候算完成 

解决:写明停止条件

```python

task = """

点击"加载更多"按钮,直到出现"没有更多内容"提示

或者已经加载了50条数据,就停止

"""

```

8.2 “执行到一半就卡住了”

原因:页面加载慢,AI 等不及 

解决:增加 timeout

```python

browser_config = BrowserConfig(

    timeout=60

)

```

8.3 “提取的数据格式乱七八糟”

原因:没指定输出格式 

解决:给输出模板,最好带示例

```python

task = """

...

输出格式示例:

{

  "title": "商品标题",

  "price": 99.99,

  "rating": 4.5

}

"""

```

8.4 “Chrome 一直报错‘无法连接’”

原因:Playwright 没装好或浏览器依赖出问题 

解决:

```bash

playwright install --force chromium

```

总结:

工具永远只是工具,关键是你拿它解决什么问题。

browser-use 对我最大的价值,不是“更酷”,而是把我从“手动搬砖的人”变成了“给 AI 派活的人”。以前我做竞品分析,80% 时间在复制粘贴;现在我把那 80% 交给自动化,把精力放回到更值钱的部分:判断、归纳、策略。

如果你也经常被“收集一堆网页信息”这种任务折磨,真可以试试:先从 3–5 个网站跑通,再逐步扩到 50 个、100 个。跑通那一刻你会发现,周五晚上也能是周五晚上。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询