首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >#WorkBuddy# 网页上没有按钮的操作怎么补:Agent Browser 浏览器操控 + 本地巡检脚本的分工(macOS 实操,附零依赖脚本)

#WorkBuddy# 网页上没有按钮的操作怎么补:Agent Browser 浏览器操控 + 本地巡检脚本的分工(macOS 实操,附零依赖脚本)

原创
作者头像
用户12406184
发布于 2026-11-01 00:12:53
发布于 2026-11-01 00:12:53
1690
举报

#WorkBuddy# 网页上没有按钮的操作怎么补:Agent Browser 浏览器操控 + 本地巡检脚本的分工(macOS 实操,附零依赖脚本)

一、你会遇到的场景

干过网页自动化的人都懂这种憋屈:要的信息藏在二级页面里,得点「加载更多」才出来;想定期看某个公告页有没有更新,只能每天手动打开一次;还有一批需要登录才能看的页面,脚本一跑就掉登录态,第二天又得扫码。

以前的解法是写爬虫或者 Playwright 脚本,代价是要自己维护选择器,网页改一次版脚本就废一次。现在 WorkBuddy 自带的浏览器操控能力(官方名 Agent Browser)把「点、翻、填、截图」这层接管了,但它不负责长期巡检。这篇文章讲两件事:Agent Browser 能干到哪一步、它干不了的那部分怎么用 90 行 Python 补上。

二、结论先行

分工一句话:需要「动手」的交给 Agent Browser,需要「长期盯着」的交给本地脚本。 前者靠浏览器真实登录态解决"进不去",后者靠哈希快照 + 归一化 diff 解决"不知道变了没有"。两者拼起来才是完整闭环。适用边界:公开页面、结构稳定的页面;有滑块/短信验证码、强风控的站点,谁都救不了。

三、完整操作步骤

步骤 1:确认插件装上了(别靠猜)

Agent Browser 靠浏览器扩展实现,当前优先适配 Chrome / Edge / QQ 浏览器。判断装没装,别去翻设置页,直接扫扩展目录更准:

代码语言:bash
复制
# 环境:macOS,Python 3.11+(零第三方依赖)
ls -1 "$HOME/Library/Application Support/Google/Chrome/Default/Extensions"

目录下每一串 32 位字符就是一个扩展 ID,真正的名字在 manifest.json 里。我把它写成了脚本的一个子命令:

代码语言:bash
复制
python3 browser_watch.py --probe

输出长这样(本机实跑,非 WorkBuddy 的扩展 ID 已打码):

代码语言:plaintext
复制
== 浏览器本体 ==
  Chrome   已安装   /Applications/Google Chrome.app
  Edge     未安装   /Applications/Microsoft Edge.app
  QQ浏览器    未安装   /Applications/QQ浏览器.app

== Chrome 已安装扩展 ==
  ajnnogdfpilbhkeggdjlcokgglijmdde  WorkBuddy  <== 目标扩展
  ********************************  __MSG_extName__(国际化名)
共 4 个扩展,命中 WorkBuddy:是

踩点:很多扩展的 name 是 __MSG_extName__ 这种国际化占位符,直接读 manifest 拿不到真名,得再查 _locales。所以判断"是不是目标扩展"要同时兼容占位符,不能只做字符串相等。

步骤 2:给 Agent Browser 下指令,四要素缺一不可

自然语言不等于随便说。实测下来,指令必须凑齐四样:链接、动作、范围、输出格式。反例:"帮我看下这个网页,整理一下内容"——它会漏抓。正例:

代码语言:plaintext
复制
打开 http://127.0.0.1:8731/notice.html
依次展开页面里所有折叠区块,点完「加载更多」
只提取正文里的条款条目,不要导航栏和页脚
整理成 Markdown 表格,关键区块各截一张图
遇到验证码/滑块就停下来等我手动处理,不要自己尝试

最后那句很重要,是安全边界不是客套话。

步骤 3:长期巡检交给本地脚本,别让浏览器一直开着

Agent Browser 适合"现在马上去做一次",不适合"每天自己看一眼有没有变"。后者用快照比对更稳。核心逻辑三步:抓页面 → 归一化 → 比哈希。

代码语言:bash
复制
# 首次:抓基线
python3 browser_watch.py --snap --config watchlist.json --store .watch_store

# 之后每次:跟上次比,只报真变化
python3 browser_watch.py --diff --config watchlist.json --store .watch_store

watchlist.json 长这样(示例 URL 为虚构演示页面):

代码语言:json
复制
{
  "watchlist": [
    { "name": "示例公告页", "url": "http://127.0.0.1:8731/notice.html" }
  ]
}

归一化是这一步的灵魂,顺序不能乱:

代码语言:python
复制
t = RE_SCRIPT.sub(" ", html)      # 1. 去 script/style —— 最大噪音源
t = RE_TAG.sub("\n", t)           # 2. 去标签
t = RE_NUMRUN.sub("<N>", t)       # 3. 去 6 位以上长数字(时间戳、流水号)
t = RE_HEX.sub("<H>", t)          # 4. 去 16 位以上十六进制(hash、csrf token)

顺序反了就完蛋:先去长数字会误伤正文里的编号,先去标签会让 <script> 的正则失配。

步骤 4:挂上定时任务

WorkBuddy 的定时任务直接指向这条命令即可,产出落在 .watch_store/diff-*.txt。前提:电脑得开着、WorkBuddy 得在线,它不是云端 Serverless,关机就是暂停。

四、实测数据

以下全部为本机实跑(macOS Apple Silicon,Python 3.13.12,本地 HTTP 演示服务,页面内容为虚构示例):

项目

实测值

--probe 扫 5 个扩展目录

约 40 ms

单页面抓快照

7 ms(6 行正文 / 373 字节)

单次 diff 比对

7 ms

只改时间戳 + script 随机数

判为无变化(0 行差异)

改联系人 + 新增一条条款

判为有变化,输出 11 行 diff

对照组:不做归一化直接比原始 HTML

误报 2 行

关键就在那个对照组:同一对"只改了时间戳"的页面,原始哈希不同、直接比文本有 2 行差异,归一化后 6 行正文完全一致。省掉归一化,你的巡检脚本会天天报假警,报到最后你就不看了。

代码语言:plaintext
复制
  [DIFF] 示例公告页          变化 11 行
         @@ -5,2 +5,3 @@
          提交截止:2026-11-02
         -联系人:示例-张三
         +联系人:示例-李四
         +新增:补充说明条款 C

未实测项:对真实外网页面的巡检误报率、Agent Browser 跑完一个真实多步任务的总耗时 —— 【待本人实测补充】,本稿不编造数字。

五、踩坑与边界

  1. urllib 不会自动解 gzip。不处理 Content-Encoding: gzip 的话,拿到的是一坨二进制,decode 出来全是乱码。脚本里必须手动 gzip.decompress;遇到 br/deflate 直接报错,别硬猜。
  2. 登录态是双刃剑。Agent Browser 复用的是你浏览器里已有的登录会话——方便,但也意味着它在授权范围内能碰到你所有已登录的账号。公用电脑别开;网银、支付类账号不要在同一个浏览器里保持登录。用完去设置页断开连接、撤回权限。
  3. 验证码是硬边界。滑块、图形选字、短信、人脸,它会停下来交还人工。如果一个任务中途频繁弹验证,来回切确认比手动做还慢,这种场景别上自动化。
  4. 它不会替你做决策。多个选项时你没有写清规则,它就停下来问你,不会自己挑。
  5. 别高频批量访问同一站点。短时间反复翻页抓取会触发风控,工具定位是"简化零散重复操作",不是无限采集器。
  6. 脚本只覆盖"静态 HTML 抓得到"的页面。需要点击才渲染、数据走异步接口的内容,脚本抓不到——那部分正好反过来交给 Agent Browser,这就是两者分工的理由。

六、小结

Agent Browser 解决"进不去、点不动、要登录",本地脚本解决"长期盯、变化告警、留档"。别指望一个工具通吃,把边界切清楚,两个都不难用。


附:发布信息

  • 标题:#WorkBuddy# 网页上没有按钮的操作怎么补:Agent Browser 浏览器操控 + 本地巡检脚本的分工(macOS 实操,附零依赖脚本)
  • 标签:WorkBuddy、AI 办公、效率工具
  • 来源:原创
  • 专栏:AI 与大数据
  • 板块:实用文章
  • 字数:1709 中文字(不含代码)✅ ≥800
  • 红线检查:✅ 示例页面、示例人物、示例编号均为虚构,标注为演示用途

截图位清单(发布前必补)

  1. WorkBuddy 工作台「浏览器」连接器卡片(已连接状态)
  2. --probe 的终端输出(浏览器 + 扩展命中)
  3. --diff 抓到真变化时的终端输出
  4. .watch_store 目录里的快照与 diff 归档文件
  5. 浏览器连接器权限说明 / 高危操作需人工确认的提示

配套文件

文件

说明

assets/browser_watch.py

主脚本,--probe / --snap / --diff 三个子命令,零第三方依赖

assets/watchlist.example.json

监控清单示例(URL 为虚构演示地址)

assets/demo-pages/notice-v1.html

虚构演示页面 v1

assets/demo-pages/notice-v2.html

虚构演示页面 v2(用于触发 diff)

assets/browser_probe_output_sample.txt

--probe 本机真实输出

assets/browser_watch_output_sample.txt

snap / diff / 对照组真实输出

复现命令:cd assets/demo-pages && python3 -m http.server 8731 --bind 127.0.0.1,另开终端跑 --snap → 换 v2 → 跑 --diff。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • #WorkBuddy# 网页上没有按钮的操作怎么补:Agent Browser 浏览器操控 + 本地巡检脚本的分工(macOS 实操,附零依赖脚本)
    • 一、你会遇到的场景
    • 二、结论先行
    • 三、完整操作步骤
      • 步骤 1:确认插件装上了(别靠猜)
      • 步骤 2:给 Agent Browser 下指令,四要素缺一不可
      • 步骤 3:长期巡检交给本地脚本,别让浏览器一直开着
      • 步骤 4:挂上定时任务
    • 四、实测数据
    • 五、踩坑与边界
    • 六、小结
    • 附:发布信息
    • 截图位清单(发布前必补)
    • 配套文件
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档