• 请不要在回答技术问题时复制粘贴 AI 生成的内容
aaa69532
V2EX  ›  程序员

开源了一个"录一次、永久跑"的浏览器采集平台 AegisCrawler(Go + TS, GPL)

  •  
  •   aaa69532 · 10h 11m ago · 119 views
  •   You need to sign in to view this topic

    搞过采集的都知道,写爬虫不难,难的是维护:页面一改版,选择器全废;人一离职,脚本没人敢动。我们团队被这个折磨久了,就做了个思路不一样的东西——录制即规则,规则即任务

    1. 装个 Chrome 扩展,在目标网站上像平时一样操作(点、输、翻页),它把你的操作录下来
    2. 录完自动生成一份可读的 DSL 规则( YAML ),向导里能看步骤、看 YAML ,还会真实浏览器完整回放一遍验证,逐步人工确认后存为不可变版本
    3. 服务端( Go + SQLite ,单二进制)把规则当任务调度:租约认领、心跳、重试、死信队列、分级限流、熔断
    4. 浏览器端的 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 在两站都能正常显示
    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   952 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 48ms · UTC 19:39 · PVG 03:39 · LAX 12:39 · JFK 15:39
    ♥ Do have faith in what you're doing.