浏览器里的智能体,干的是“替你点网页”这件事。它把页面上的点击、输入、翻页交给 AI 执行,省下的是重复操作的时间,不是判断的时间。这个区分很关键:判断错了,点得再快也是白点。所以用 QBotClaw 这类工具,先想的应该是任务值不值得交,而不是怎么让它点得更快。
先算一笔账:点击次数够不够多
一个任务值不值得自动化,用两步判断。先看频次:每周做一次的任务,搭流程的时间比手动做还长。第二步看步骤:少于五步、每步都要临场判断的任务,交给智能体反而更慢。
值得交出去的任务通常长这样:每周三次以上、步骤固定、页面结构几个月没变、结果能用字段描述。比如每天从三个固定网站抓取公告标题和日期,或者把同一批数据填进固定表单。
不值得交的也很典型:需要登录后再做人工判断的审批、页面天天改版的后台、只做一次的临时任务。这三类手动做更省心,硬上自动化,维护成本会超过收益。
三种定位方式,决定它稳不稳
智能体要在页面上找到目标,靠三种方式之一:按页面结构定位(选择器)、按可见文字定位、按截图位置定位。三种的稳定性差别很大,选错了,今天能跑明天就断。
按结构定位最稳,前提是页面结构稳定;一旦前端改版,选择器就失效。按文字定位对人友好,对页面也宽容,但遇到多语言、动态文案、按钮文字随状态变化时容易找不到。按坐标定位最脆弱,窗口大小、字体、缩放一变就偏,只适合做兜底。
实际做法是组合:主路径用文字定位,关键按钮加结构定位兜底,坐标定位只在没有其他办法时用。每加一种兜底,都要在日志里记清是哪一种生效的,否则出问题无法定位。
把任务写成输入、动作、断言
一句话描述任务,智能体只能猜。把它拆成三段:输入是什么(网址、账号、筛选条件、日期范围)、动作有哪些(点击、输入、翻页、下载)、断言是什么(页面上出现某段文字、表格行数大于零、文件已生成)。
断言这一段最容易被省略,也最该写。没有断言的自动化,失败了也会显示“完成”。加上断言之后,它至少能告诉你哪一步没达成,而不是把空结果交给你。
等待条件也要写清楚。用“等某个元素出现”代替固定等待几秒,前者在慢网络下不会误判,后者要么白等,要么抢跑。页面有懒加载的,还要加滚动动作,否则抓到的只有首屏。
分页和去重是两个隐藏坑。分页要有上限,防止死循环;去重要有唯一键,比如公告编号或链接,否则翻页重叠会产生重复记录。这两条不写,跑一次就得手工清一次数据。
只读先跑一遍,再放开提交
上线顺序建议分三段:先只读,再填写但不提交,最后才允许提交。只读阶段跑三天,看它抓回来的内容对不对;填写阶段看字段有没有错位;提交阶段先小批量,确认无误再放量。
权限要给得克制。用独立账号,不给支付权限,不给删除权限,能只读就不给写。涉及验证码的环节保留人工,别试图绕过,这类设计本身就是防自动化的。
跑起来之后要有监控。每天看一眼成功率,连续两天低于预期就停下来查,别让它带着错误跑一周。失败时留下的截图和步骤日志,比任何描述都有用,会话与执行记录的留存方式可以借鉴,核心是能回放到出错那一步。
四类页面结构的处理
| 页面类型 | 怎么处理 | 判断标准 | 典型失效 |
|---|---|---|---|
| 静态列表页 | 按文字定位条目,抓到唯一编号 | 连续三天抓取条数稳定 | 分页参数变化导致重复抓取 |
| 无限滚动页 | 加滚动动作,按高度判断到底 | 滚到底部后条数不再增长 | 滚动太快,内容还没加载就判断结束 |
| 表单页 | 逐字段填写,每填一项做一次校验 | 提交前能读出所有字段值 | 下拉选项异步加载,选到了空值 |
| 登录后台 | 保留人工登录,只自动化登录后的只读操作 | 登录态失效时能自动停下 | 登录过期后继续点,抓到一堆空页面 |
这张表的用法是:先认清你的页面属于哪一类,再决定要不要做。第四类如果占比高,先别铺开。
它做不到什么
它读不懂页面上的隐含规则。比如一个按钮灰着是因为权限不够,还是因为前置条件没满足,它看不出来,只会反复点。这类判断要写进流程,或者干脆留给人。
它也扛不住频繁改版。前端一周一小改、一月一大改的站点,维护成本会持续上涨,因为每次改版都可能让定位失效。这类场景更适合用接口,而不是模拟点击。
数据准确性同样不能全托。自动抓取会有漏行、错位、字段串列,尤其是表格跨页和合并单元格。用于决策前按比例抽样核对,比如每批抽十条对原文,错一条就整批重跑。
上线前的五项设置
- 每个任务都有明确的断言,不只看“跑完了”
- 等待用条件判断,不用固定秒数
- 分页设上限,去重设唯一键
- 账号独立,不给支付和删除权限
- 失败留截图和步骤日志,能回放
三个上线前的问题
- 同一套流程能不能跑多个网站?:不能直接复用。每个站点的结构不同,定位方式要重写。可行的做法是把“输入、动作、断言”做成配置,站点之间只换配置,不换流程,这样维护量会小很多。
- 它点错了会不会造成实际影响?:只读阶段不会,写入阶段会。所以任何会改变外部状态的动作,都要加二次确认或者白名单,比如只允许提交到测试环境,正式环境仍需人工点最后一步。
- 抓回来的数据放哪?:先落本地表格,字段固定,别直接进业务库。稳定两周之后再考虑接库,接入时保留原始快照,方便回溯是哪一次抓错了。用数据库存结构化结果是另一条路,适合需要按条件查询的场景。
还有一个判断值得记住:智能体在页面上的每一次“找不到”,本质上都是信息不足。要么是页面变了,要么是描述不清,要么是权限不对。把它当成排查线索,比反复重跑有用。任务拆到足够细、失败能被识别出来,这类工具才算真正用起来;识别不准就转人工,置信度阈值怎么设讲的是同一套思路。


