news 2026/8/23 18:08:35

Browser Use + DeepSeek,我踩了哪些坑

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Browser Use + DeepSeek,我踩了哪些坑

Browser Use + DeepSeek,我踩了哪些坑

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


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

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

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

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

💡 最简单的解法:换成deepseek-chat(V3)。
llm = ChatOpenAI(model="deepseek-chat",# 别用 reasonerapi_key="你的KEY",base_url="https://api.deepseek.com",temperature=0, )

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

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

importrefromlangchain_openaiimportChatOpenAIclassDeepSeekR1Chat(ChatOpenAI):def_create_chat_result(self, response, generation_info=None): result =super()._create_chat_result(response, generation_info)forgeninresult.generations: msg = gen.messageif'<think>'instr(msg.content): msg.content = re.sub(r'<think>.*?</think>','', str(msg.content), flags=re.DOTALL ).strip()returnresult

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

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

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

frombrowser_useimportAgent, AgentSettings agent = Agent( task="...", llm=llm, settings=AgentSettings( max_steps=20,# 超过 20 步强制停max_failures=3,# 失败 3 次就停) )# 再套一层总超时保险result =awaitasyncio.wait_for(agent.run(), timeout=180)

坑三:登录老被风控

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

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

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

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


能跑的完整代码

importasynciofrombrowser_useimportAgent, AgentSettingsfromlangchain_openaiimportChatOpenAI 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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 16:45:17

Django CORS配置实战:从安全漏洞到生产环境最佳实践

Django CORS安全配置实战&#xff1a;从漏洞防御到企业级最佳实践 1. 为什么CORS配置如此关键&#xff1f; 现代Web应用架构中&#xff0c;前后端分离已成为主流开发模式。当你的前端应用运行在https://app.example.com&#xff0c;而后端API位于https://api.example.com时&a…

作者头像 李华
网站建设 2026/7/14 16:45:19

Chandra OCR功能体验:布局感知OCR实测,表格公式手写识别效果惊艳

Chandra OCR功能体验&#xff1a;布局感知OCR实测&#xff0c;表格公式手写识别效果惊艳 1. 从“识字”到“懂你”&#xff1a;Chandra带来的OCR新体验 我们每天都在和文档打交道。一份PDF合同&#xff0c;你想快速提取关键条款&#xff1b;一张手写的数学试卷&#xff0c;你…

作者头像 李华
网站建设 2026/7/14 16:45:33

Audio Pixel Studio效果展示:农业科技广播稿AI配音+方言语音适配探索

Audio Pixel Studio效果展示&#xff1a;农业科技广播稿AI配音方言语音适配探索 1. 引言&#xff1a;当农业科技遇上AI语音 想象一下&#xff0c;一位农业技术推广员&#xff0c;需要为不同地区的农民录制技术讲解广播。他不仅要准备普通话版本&#xff0c;还要为四川、广东、…

作者头像 李华
网站建设 2026/7/14 16:45:18

隐私守护:本地Cookie管理的颠覆性实践

隐私守护&#xff1a;本地Cookie管理的颠覆性实践 【免费下载链接】Get-cookies.txt-LOCALLY Get cookies.txt, NEVER send information outside. 项目地址: https://gitcode.com/gh_mirrors/ge/Get-cookies.txt-LOCALLY 破解Cookie管理困境&#xff1a;从数据泄露到本地…

作者头像 李华
网站建设 2026/7/14 16:45:18

保姆级教程:DDColor+ComfyUI修复黑白建筑照片,参数设置技巧

保姆级教程&#xff1a;DDColorComfyUI修复黑白建筑照片&#xff0c;参数设置技巧 你是不是也翻出过家里的老相册&#xff1f;那些泛黄的黑白照片里&#xff0c;有爷爷年轻时工作的厂房&#xff0c;有奶奶家那条铺着青石板的老街。看着这些照片&#xff0c;我们总忍不住想象&a…

作者头像 李华
网站建设 2026/7/14 16:45:32

深入解析 `global.json`:灵活掌控 .NET SDK 版本的终极指南

1. 从一次“诡异”的构建失败说起&#xff1a;为什么你需要 global.json&#xff1f; 那天下午&#xff0c;团队里新来的小伙伴在群里发了个截图&#xff0c;附带一个哭脸表情&#xff1a;“我这代码在本地跑得好好的&#xff0c;怎么一到 Jenkins 上就构建失败了&#xff1f;错…

作者头像 李华