跳到正文

AI工具Simon Willison23:37

基于 Bun 1.4 新 Bun.WebView 的 shot-scraper 风格 JSON API

A shot-scraper-style JSON API on Bun 1.4's new Bun.WebView

用WebView替代浏览器自动化,成本或降低但兼容性需实测。

判断

Simon Willison 用约 150 行 TypeScript 证明 Bun.WebView 能不靠 Puppeteer、Playwright 起一个 JSON 接口;想砍掉这两个依赖的团队,先按 192MB-256MB 的容器上限和自家真实页面做兼容性实测,再决定拆不拆。

依据

Simon Willison 说,这个零依赖、约 150 行的 TypeScript 服务用 Bun 1.4 实验性的 Bun.WebView(Bun 内置的浏览器自动化 API,可走 macOS WebKit,也可通过 Chrome DevTools Protocol,即浏览器远程调试协议,驱动本地 Chromium 进程)做出 shot-scraper 风格的 JSON 接口:每个请求开一个标签页,/javascript、/screenshot、/healthz 三个端点把页面结果和错误都以 JSON 返回。他用 cgroups(Linux 的资源限制组,这里用来量容器内存上限)测出跑复杂网页要 192MB-256MB 的容器。对照 Bun 1.4 自己的数字——修复 2,900 多个 issue、从 Node.js 测试套件新增 +1,517 条测试、空闲 CPU 降 5x、内存最多降 35%——省下的是依赖与协议栈,代价落在 WebKit 那条路径上:它是官方刚开放的能力,不是被 Playwright 长期压测过的路径。

  • 跑复杂页面所需容器192MB-256MB
  • 空闲 CPU 占用降低 5x
  • 内存占用至多降低 35%
  • 新增 Node.js 测试+1,517
Bun 1.4 的官方数字与这个原型的容器占用量级

没写清 材料只给了单个原型的内存占用,没有同一批真实页面上 WebKit 与 Chromium 两条路径的失败率对照,省依赖之后的兼容性代价有多大,无法替 Simon 补结论。

下一步 在同一批目标页面上,让 Bun.WebView 与现有 Playwright 脚本跑同一条 JavaScript 与截图任务,比对两边的失败率。

本期其他新闻

  1. 行业动态

    AI 期货问世

    OpenAI

  2. 行业动态

    Stampli 使用 ChatGPT Work 将启动时间缩短 68%

    OpenAI

  3. AI工具

    ChatGPT 搜索现大规模支持 site: 运算符

    Simon Willison

  4. AI工具

    LFM2.5-DSpark 推理速度提升高达 3.2 倍

    Hugging Face

  5. AI工具

    smolmachines / smolvm 作为不受信任 Python 与 JavaScript 的沙箱

    Simon Willison