scrape

其他 已审计 @garrytan v1.0.0
信任分
92/100
兼容 Agent
1
速查档案 只列事实:领域、Agent、信任分、作者、原文章节。装与不装请看下方作者解读。
领域
通用
兼容 Agent
Claude Code
信任分
92 / 100 · 已通过审计
作者 / 版本 / 许可
@garrytan · v1.0.0 · 未声明 license
安装命令数
1 条

需要注意: 未限定 allowed-tools,默认拥有全部工具权限。

想读作者英文原文? ↓ 滚到正文区切换 · 在 GitHub 查看 ↗

解读由编辑根据原文凝练而成,命令、链接、术语均与作者原文一致;想看完整论述请切到右侧

scrape 是浏览器侧的「只读抓取」入口——专门处理「我想从某网站把一组数据弄下来」这一类需求,并明确把写动作(提交表单、登录、点击下单)拒之门外,留给将来上的 /automate(browser-skills Phase 2 P0)。

设计思路

作者把抓取拆成 Match → Prototype 两层:能被现有 browser-skill 命中就直接跑命中的那个;命不中再用 $B 原语手写原型。这避免了「同一类抓取被反复重写」。

工作流

Step 1 Determine intent — 用户给一行意图("top stories on Hacker News"),没给就只问一次;② Step 2 Refuse mutating intents — 出现 submit / post / send / log in / click X / fill the form / delete / create / order / book 之类动词,回复「/scrape is read-only…」并停止;③ Step 3 Match — 跑 $B skill list 列出现有 browser-skill,再用 $B skill show <name> 读它们的 triggers: / description: / host:,三件事都对得上才视为命中(host 域、triggers 描述同一份数据、不要它没声明的 args)。命中跑 $B skill run <name> [--arg key=value ...];④ Step 4 Prototype — 没命中走 $B goto / snapshot --text / html / links 这套原语手写抓取,迭代选择器,输出 stable JSON shape({"items":[...],"count":N});⑤ Step 5 Skillify nudge — 写完原型主动建议沉淀为 browser-skill。

红线

本技能做写操作;不会自动登录;不会过 captcha;不会绕 robots——这些都是 /automate 的事,作者明确写了「Until then, use $B click / $B fill / $B type directly」。

适合的场景

  • 一次性把某网站的列表 / 表格 / 链接收集成 JSON
  • 已经有 browser-skill 仓库的团队,想把抓取流量先尝试命中既有 skill
  • 把抓取脚本稳定化、沉淀为可复用 skill

何时不要用

  • 需要登录态 / 写操作:见 automate,目前未发布就直接用 $B 原语
  • 抓的网站要求 API 接入:直接走 $B js "await fetch(...)" 或同等 API 客户端更可靠

配套

webapp-testing(同样基于 $B 但偏 QA)、web-artifacts-builder(拿到数据后做可分享的可视化)、skillify(把抓取原型沉淀成 browser-skill)、setup-browser-cookies(命中前置:导真实浏览器登录态)。