Administrator
发布于 2026-09-09 / 0 阅读
0
0

OpenClaw 浏览器自动化实战:让 AI 接管网页点击与抓取


为什么需要浏览器自动化

OpenClaw 的 cron 定时任务很香,但有个盲区:它只能调 API。一旦遇到没有开放 API 的页面——公众号后台、各种管理系统、需要登录才能看的看板——就束手无策了。

OpenClaw 内置了 browser 工具(底层是 Playwright + Chromium),它能像人一样打开网页、点按钮、读内容、填表单。换句话说,凡是你能在浏览器里手动干的活,都能交给 AI 定时跑

本文用真实可用的命令,带你走完「检查 → 打开 → 读 → 点 → 批量动作」全流程,并附一份踩坑清单。

第一步:先确认浏览器能跑(doctor)

别一上来就开页面。先确认浏览器插件和 Chromium 就绪:

openclaw browser doctor
openclaw browser status
  • doctor 检查浏览器插件是否安装、Chromium 是否可启动,出错会直接告诉你缺什么。
  • status 看当前浏览器可用状态(是否在线、有几个 profile)。

如果 doctor 报 Chromium 缺失,按它的提示装一下依赖再继续,否则后面每一步都会超时。

第二步:打开页面并抓快照

openclaw browser open --url "https://example.com" --label "task"
openclaw browser snapshot --targetId task --refs aria

几个关键约定:

  • --label task 给标签页起一个稳定名字,之后所有操作都用 targetId:"task" 指代。别用原始的 targetId(那串会随 Chromium 标签页替换而变化),用 label 最稳。
  • --refs aria 拿到的是稳定的 ARIA 引用(如 e12),专门用来给后续点击用。

如果之前可能残留了标签页,先列一下、复用或关掉多余的:

openclaw browser tabs
openclaw browser close --targetId t3

第三步:读内容 / 点按钮

读正文(这才是读文章该用的方式,snapshot 会省略大部分正文):

openclaw browser text --targetId task --selector "article" --maxChars 2000

不指定 selector 时,默认读 article / main / body 第一段匹配。

点击(用上一步快照里的 ref):

openclaw browser act --targetId task --kind click --ref e12

批量动作(一次把一串动作发过去,省去来回):

openclaw browser batch --actions '[{"kind":"click","ref":"e12"},{"kind":"wait","timeoutMs":1500},{"kind":"snapshot","refs":"aria"}]' --targetId task

重要:batch改变页面的动作(导航、提交表单)会让之前的 ref 失效。把状态变更动作放前面,或变更后重新 snapshot 再点。

常用动作速查表

想做的事 命令 说明
看浏览器是否可用 browser status 排查第一步
开标签页 browser open --url --label 用 label 当稳定句柄
读正文 browser text --selector 读文章用这个,别用 snapshot
点按钮 browser act --kind click --ref ref 来自 snapshot
填表单 browser act --kind fill --ref 配合 ref 写入
一次跑一串 browser batch --actions 减少往返,注意 ref 失效

真实避坑清单

  1. 登录态要用现有浏览器:需要已登录的 cookie,用 profile:"user" 或先 importprofile 把真实浏览器的 cookie 拷进干净容器。别用全新容器白登一遍,二维码/eval 都麻烦。
  2. stale ref 恢复:动作报 ref 失效,先对同一个 targetId 重新 snapshot,拿到新 ref 再点一次,不要死循环重试旧的。
  3. 别盲目 sleep:优先等页面出现可见状态,而不是写死等待时间。wait 动作也是等状态,不是干等。
  4. 抓文本用 text 而非 snapshot:snapshot 是给「要点哪」用的,会省略正文;读内容一定用 text
  5. 遇到验证码/2FA/登录弹窗:这是人工步骤,停下来告诉用户「需要你扫码/输验证码」,别硬闯,硬闯只会卡死。
  6. 国产浏览器页面:profile:"user" 这类现有会话 profile 不支持 emulate(设备/时区模拟),需要模拟时用干净容器。

一个能直接跑的定时采集骨架

把上面这套放进 cron,就能让 AI 每天自动打开某后台读数据、存文件或推微信:

# cron 触发后,AI 大致会执行:
openclaw browser open --url "https://your-dashboard.example.com" --label "daily"
openclaw browser snapshot --targetId daily --refs aria      # 找登录/数据区 ref
openclaw browser text --targetId daily --selector "table" --maxChars 4000
# 结果写进文件 / 通过 message 工具推到微信

核心思路就一句:open 拿页面 → snapshot 拿 ref → text 读内容 / act 点操作 → batch 串起来。登录态用 profile 带,cookie 跟着走;ref 失效就重新 snapshot。

把重复性的「打开网页抄数据」交给浏览器自动化,你只需要在意数据本身。


关注我

如果这篇对你有用,欢迎关注我的公众号,第一时间收到 OpenClaw 实操更新:

公众号二维码

扫码或微信搜索公众号名称即可。每天一篇 OpenClaw 中文实操手记。


评论