Browser Use + DeepSeek,我踩了哪些坑

Browser Use + DeepSeek,我踩了哪些坑

最近在折腾 Browser Use,想着 DeepSeek 便宜就接上试试,结果坑一个接一个。记录下来,希望你别再踩一遍。


坑一:程序卡住,一动不动

第一次跑,浏览器倒是打开了,但就这么干等着,没有任何输出,也没报错,就是不动。

等了五分钟,还是没反应。

查了一圈才搞明白:我用的是 deepseek-reasoner(R1),这个模型会先输出一大段 <think>...</think> 思考过程,Browser Use 拿到这个返回值之后解析 JSON 直接懵了,然后开始重试,然后又失败,然后又重试......死循环。

最简单的解法:换成 deepseek-chat(V3)。

python 复制代码
llm = ChatOpenAI(
    model="deepseek-chat",  # 别用 reasoner
    api_key="你的KEY",
    base_url="https://api.deepseek.com",
    temperature=0,
)

R1 的思维链对这种浏览器操作任务没什么用,反而添乱。V3 又快又稳。

如果非要用 R1,就得手动把思维链过滤掉:

python 复制代码
import re
from langchain_openai import ChatOpenAI

class DeepSeekR1Chat(ChatOpenAI):
    def _create_chat_result(self, response, generation_info=None):
        result = super()._create_chat_result(response, generation_info)
        for gen in result.generations:
            msg = gen.message
            if '<think>' in str(msg.content):
                msg.content = re.sub(
                    r'<think>.*?</think>', '',
                    str(msg.content), flags=re.DOTALL
                ).strip()
        return result

坑二:任务跑飞,token 一直在烧

有次让 Agent 帮我登录一个网站,结果它开始反复点同一个按钮,停不下来。过了一会儿看账单,好几块钱没了。

加上步数限制就行,这个默认应该开的:

python 复制代码
from browser_use import Agent, AgentSettings

agent = Agent(
    task="...",
    llm=llm,
    settings=AgentSettings(
        max_steps=20,     # 超过 20 步强制停
        max_failures=3,   # 失败 3 次就停
    )
)

# 再套一层总超时保险
result = await asyncio.wait_for(agent.run(), timeout=180)

坑三:登录老被风控

让 Agent 自己填账号密码登录,跑几次就触发验证码,然后就卡死了。

解法是用 Session 持久化------你手动登录一次,把状态保存下来,以后每次直接加载,Agent 上来就是已登录状态:

python 复制代码
from browser_use import Browser, BrowserProfile

# 第一次:手动登录
browser = Browser(profile=BrowserProfile(path="./session"))
# 会弹出真实浏览器,你手动登录,关掉后自动保存

# 以后每次直接用
browser = Browser(profile=BrowserProfile(path="./session"))

注意 Cookie 会过期,过期了重新存一次就好。


能跑的完整代码

python 复制代码
import asyncio
from browser_use import Agent, AgentSettings
from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    model="deepseek-chat",
    api_key="你的DEEPSEEK_KEY",
    base_url="https://api.deepseek.com",
    temperature=0,
    max_tokens=4096,
)

agent = Agent(
    task="打开 baidu.com,搜索 Browser Use,截图第一条结果",
    llm=llm,
    settings=AgentSettings(max_steps=20, max_failures=3),
)

asyncio.run(asyncio.wait_for(agent.run(), timeout=180))

要不要用官方的 BROWSER_USE_API_KEY?

官方 Key 贵,但它帮你处理了验证码、反爬这些脏活。如果你爬的是电商、社交平台这类防护强的网站,官方 Key 值那个价。

如果只是爬一些普通页面、内部系统,DeepSeek API 完全够用,便宜十几倍。


就这些,有问题欢迎加微信聊:yuyezhiji

相关推荐
考虑考虑5 小时前
数据库中的EXISTS
运维·数据库·后端
找方案5 小时前
AI+人力资源:AI招聘面试的兴起与争议
人工智能·面试·职场和发展
郑州光合科技余经理6 小时前
国际版外卖系统:税率字段怎么和订单主流程解耦
android·java·开发语言·前端·后端·php·ai编程
毅炼6 小时前
Rover-Suite 开源发布:轻量服务注册中心与网关一体化方案
java·后端·系统架构·gateway
苏三说技术10 小时前
为什么越来越多人用OpenWiki?
后端
IT_陈寒10 小时前
Java里用Stream.parallel()翻车实录,这性能还不如单线程
前端·人工智能·后端
Bs_MoneyMagnet10 小时前
基于springboot+vue的生态果园采摘预约系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·毕业设计·计算机毕业设计
码事漫谈11 小时前
FDE 的起源、形态与真实边界
后端
ServBay11 小时前
Grok Bot 还是 OpenClaw?聊聊真正能替人打杂的 AI 智能体
后端·aigc·grok
掘金挖土11 小时前
前端手摸手跑路之 AI 应用开发(五)
前端·后端