微信扫码
添加专属顾问
我要投稿
周五晚上老板突然要求收集50个竞品定价,传统方法耗时费力,直到发现browser-use这个神器——让AI像人类一样浏览网站,3小时写完脚本,一晚上自动完成任务!核心内容:1. 传统收集竞品定价方案的三大痛点2. browser-use如何实现AI自主操作浏览器3. 实战经验分享与适用场景分析
周五晚上 7 点,我刚把外卖拆开,手机“叮”一声。
老板发来一句话:
“小王,周一要开会,你去收集下 50 个竞品的定价策略。”
我盯着屏幕愣了两秒,脑子里已经开始自动播放画面:打开 50 个网站、挨个找 Pricing、复制粘贴、整理表格、截图留证……别说周末了,我今晚都别想睡。
更要命的是,传统方案我都试过:
写爬虫?不少 SaaS 官网套了 Cloudflare,反爬一上来就把你当“坏人”。
纯手动?不是做不完,是做完人就没了。
RPA 录制?看起来优雅,实际一改版就报废,维护成本比写代码还高。
那一刻我突然意识到:这不是“能不能做”的问题,是“有没有更像人类的方式做”。
然后我刷到一个东西——browser-use。
我第一反应是:这玩意儿是不是又是那种“宣传视频里很丝滑,自己跑起来像抽风”的工具?
但我抱着“死马当活马医”的心态装了装。
结果很离谱:我花了大概 3 小时写完脚本,AI 自己跑了一晚上;周六早上醒来,数据已经躺在 Excel 里了。
甚至还顺带把每家套餐差异做了个简单归类,开会材料直接能用。
所以我想把这次经历写下来:不是炫技,也不是种草贴——就是一份真正在业务里能落地的记录:怎么用、怎么写、哪里会翻车、什么场景别碰。
老板突然发来消息:“小王,周一要开会,你去收集下 50 个竞品的定价策略。”
我的内心 OS:周五晚上 7 点,这是要我手动打开 50 个网站一个个复制粘贴?
传统方案的困境:
爬虫?很多网站有反爬
手动?累死我也做不完
RPA 工具?录制脚本太繁琐,网站一改版就失效
第一反应:这玩意儿真能让 AI 自己操作浏览器?
半信半疑装上试试
结果:3 小时写完代码,AI 自己跑了一晚上,周六早上醒来数据已经躺在 Excel 里
不是来吹牛的,是真的解决了我的问题
分享完整的踩坑经验和实战代码
告诉你哪些场景适合用,哪些不适合
把 LLM(大语言模型)装进浏览器里,让 AI 像你一样点击、输入、滚动页面,还能自己决定下一步该干什么。
你可以把它理解成:你不是在写“爬虫规则”,而是在雇一个会用浏览器的实习生。你只需要把任务说清楚,它自己去找按钮、点链接、翻页、抓信息。
【传统爬虫】
你:写正则表达式,找XPath,处理反爬
坏处:网站改版就废了
【RPA工具(如UiPath)】
你:录制每一步操作
坏处:不灵活,遇到验证码就卡住
【browser-use】
你:告诉AI"去某网站找价格"
AI:自己分析页面,点击按钮,填表单,提取数据
看懂网页:把 HTML 渲染成 AI 能理解的结构
自主决策:不需要你写 if-else,AI 自己判断要点哪个按钮
容错性强:页面结构变了,AI 会自适应
多步骤任务:能完成“登录→搜索→翻页→提取”这种复杂流程
【你的指令】
↓
【LLM大脑(GPT-4/Claude)】
↓
【browser-use中间件】
↓
【Playwright控制浏览器】
↓
【真实的Chrome窗口】
它的思路很直白:LLM 负责“想”,Playwright 负责“做”。browser-use 做中间翻译:把网页“整理成 AI 看得懂的样子”,再把 AI 的动作变成真实的点击/输入。
第 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
场景:我想知道 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 的验证页面,这不是你的错
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 自动替你“整理成你想要的样子”,你得提前把标准定好。
需求描述:
每周监控 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/月”)
场景: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 条”
数据清洗还是要你自己过一遍,尤其是岗位标题/薪资这种花样很多
场景:测试自己网站表单提交流程
```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 香的点很现实:
不用写一堆定位器
页面小改版不至于全军覆没
你可以用“人说的话”写用例,迭代速度很快
差的写法:
```python
task = "帮我抓点数据"
```
好的写法(像在带实习生):
```python
task = """
目标:提取Amazon商品评论
步骤:
访问 {product_url}
滚动到评论区
点击"查看更多评论"按钮3次
提取前50条评论的:星级、日期、内容
返回JSON格式:[{"rating": 5, "date": "2024-01-01", "text": "..."}]
"""
```
总结一句:写清楚步骤 + 写清楚停止条件 + 写清楚输出格式,成功率会直接上一个台阶。
下拉菜单、日期选择器这类“人类觉得简单,脚本写起来很烦”的交互,反而是它的舒适区:
```python
task = """
访问携程机票预订页
选择出发地:北京(从下拉菜单选择)
选择目的地:上海
选择日期:2024年3月15日(使用日期选择器)
点击搜索
提取最便宜的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。你看着它哪里卡住,比盲猜强太多。
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
)
1)数据采集(最佳场景)
竞品监控、招聘信息收集、电商价格对比、新闻汇总
2)自动化测试
E2E、回归、UI 交互测试
3)重复性操作
表单批量填写、定期报告生成(合法合规前提下)
4)探索性任务
“帮我找出这个行业的 Top10 公司”
“对比这三个工具的功能差异”
1)高频实时任务
每秒级抓取,用传统爬虫更合适(LLM 反应慢,成本也高)
2)结构化且稳定的数据提取
如果页面结构固定,BeautifulSoup/接口抓取更快更便宜
browser-use 的优势是“灵活”,不是“极致效率”
3)强验证码场景
图片验证码基本别指望
滑块偶尔能过,但不稳定,业务上不可靠
4)违法违规操作
别拿它做灰产
尊重 robots.txt 和网站条款
原因:任务描述不清楚,AI 不知道什么时候算完成
解决:写明停止条件
```python
task = """
点击"加载更多"按钮,直到出现"没有更多内容"提示
或者已经加载了50条数据,就停止
"""
```
原因:页面加载慢,AI 等不及
解决:增加 timeout
```python
browser_config = BrowserConfig(
timeout=60
)
```
原因:没指定输出格式
解决:给输出模板,最好带示例
```python
task = """
...
输出格式示例:
{
"title": "商品标题",
"price": 99.99,
"rating": 4.5
}
"""
```
原因:Playwright 没装好或浏览器依赖出问题
解决:
```bash
playwright install --force chromium
```
工具永远只是工具,关键是你拿它解决什么问题。
browser-use 对我最大的价值,不是“更酷”,而是把我从“手动搬砖的人”变成了“给 AI 派活的人”。以前我做竞品分析,80% 时间在复制粘贴;现在我把那 80% 交给自动化,把精力放回到更值钱的部分:判断、归纳、策略。
如果你也经常被“收集一堆网页信息”这种任务折磨,真可以试试:先从 3–5 个网站跑通,再逐步扩到 50 个、100 个。跑通那一刻你会发现,周五晚上也能是周五晚上。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-01-13
Claude 发布 Cowork:当 AI 走出聊天框,开始整理你的文件
2026-01-08
Manus公告里的这8000万虚拟计算机究竟是个什么来头?
2026-01-07
李开复:AI Agent最大价值在to B
2026-01-07
为什么自动化反而输?AI创业要“含人量”
2026-01-05
字节版 Manus 上线!实测 AnyGen:不仅是聊天机器人,更是你的超级员工
2026-01-05
当AI吃掉软件开发中间层:产品团队遭遇敏捷以来最大结构性变革
2026-01-04
AI还没到深水区,我们要从“做题人”变成“阅卷人”
2026-01-03
罗振宇2026全是 AI 广告的跨年演讲,其实就说了三件事
2026-01-01
2025-10-21
2026-01-05
2025-11-30
2025-10-29
2025-12-30
2025-12-04
2025-12-23
2025-12-18
2025-12-31