搞过采集的都知道,写爬虫不难,难的是维护:页面一改版,选择器全废;人一离职,脚本没人敢动。我们团队被这个折磨久了,就做了个思路不一样的东西——录制即规则,规则即任务:
- 装个 Chrome 扩展,在目标网站上像平时一样操作(点、输、翻页),它把你的操作录下来
- 录完自动生成一份可读的 DSL 规则( YAML ),向导里能看步骤、看 YAML ,还会真实浏览器完整回放一遍验证,逐步人工确认后存为不可变版本
- 服务端( Go + SQLite ,单二进制)把规则当任务调度:租约认领、心跳、重试、死信队列、分级限流、熔断
- 浏览器端的 ScriptCat worker 认领任务,真实标签页里执行,结果实时回传
30 秒演示 GIF (在 books.toscrape.com 演示站录制): https://github.com/singhand-labs/AegisCrawler/raw/main/.github/assets/demo.gif
仓库: https://github.com/singhand-labs/AegisCrawler ( GPL-3.0-or-later ,闭源商用单独授权; README 双语; Docker 镜像 GHCR )
几个可能被问的点,先答了:
- 和 LLM 爬虫什么关系? LLM 是可选增强,而且被拴着:只能对确定性 baseline 规则提 patch ,过安全扫描后生成 pending 规则,管理后台看 diff 人工应用/拒绝。模型不是运行时依赖,关掉照样跑。
- 为什么不直接生成代码? 代码是给开发者的;我们想让规则是运维和业务也能看懂的资产( Admin UI 有 DAG 流程图和结构化步骤视图),并且每次执行绑定不可变版本,出问题能审计到"当时批准的就是这份规则"。
- UI 是中文吗? 是,管理后台中文,英文在路线图上。
- 合规? 工具本身只提供技术能力,README 有完整免责声明;演示用的是爬虫练习站,请大家遵守目标站点条款和 robots.txt 。
欢迎拍砖,尤其想听 DSL 设计上的意见——这是整个项目的核心赌注。
版本 B:Linux.do
标题: [分享] 开源浏览器采集平台 AegisCrawler:录制浏览器操作 → 生成可审计 DSL 规则 → 定时任务执行
正文:
(结构与 V2EX 版一致,语气更技术向,可直接用 Markdown 。差异点:)
- 开头改成:"折腾过 Playwright 脚本维护的和被 'AI 爬虫' 随机漂移坑过的朋友应该都懂这个痛点……"
- 末尾追加一段技术细节:录制是语义事件 + 三阶段 DOM 快照,客户端脱敏;规则生成是确定性的(同录制同规则);执行尝试绑定不可变规则版本、结果按 attempt 幂等; SQLite 走 modernc.org 纯 Go 驱动无 CGO ,单二进制自带 go:embed 的管理后台
- 补一句:"油猴/ScriptCat 老用户应该会喜欢 worker 的实现方式,欢迎来读 userscript executor 的源码"
两站通用注意事项:
- 不要在标题带 "求星",社区反感
- 评论区被指出问题时大方承认 + 记 issue (旧仓库已清空重建,新 issue 页面是干净的,正好用)
- GIF 外链 GitHub raw 在两站都能正常显示