“把网页当程序跑”——这是 Jeff Lindsay 的 webframe 项目给出的说法。你给它一个网址或文件,它就在隐藏的无头网页视图里执行,把 console.log() 输出到标准输出,把异常输出到标准错误。
这个项目用 Go 写成,构建在 glaze 库之上。glaze 提供对系统浏览器的访问能力:macOS 上是 WKWebView,Linux 上是 WebKitGTK,Windows 上是 WebView2。因此 webframe 不需要自己打包一套浏览器引擎。
它让人想起 shot-scraper 的 javascript 工具,只是体积小得多,也不依赖 Playwright。为了摸清它的底细,有人让 Claude Opus 5.5 对它做了一轮测试并整理成研究报告。
测试的思路分几步走:
- 打开 webframe 的 GitHub 仓库,把项目跑起来;
- 用它搭几个探索性的原型;
- 评估它作为沙箱工具的潜力;
- 评估它按 shot-scraper JavaScript 那套模式抓取网页的能力。
换句话说,同一个工具被放在两个完全不同的场景里审视:一边是隔离执行不可信代码的沙箱,一边是日常抓网页的脚本工具。前者看重的是边界是否可靠,后者看重的是用起来顺不顺手。
webframe 的取巧之处在于不重复造轮子。系统里本来就有浏览器,glaze 把它调出来用,项目本身只负责“执行网页、转发输出”这一层。体积小、依赖少,代价是把渲染和执行的底子交给了各平台的系统浏览器。
至于它在这两个方向上到底表现如何,那份研究报告给出了答案。对一个还在早期的小项目来说,能被这样认真地当工具来检验,本身就是一种待遇。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.