webframe 评测:作为抓取工具与沙箱表现如何
webframe: evaluated as a scraper and a sandbox
对 Jeff Lindsay 的 webframe 评测显示,这个基于 Go 和 glaze 库的轻量浏览器 JavaScript 运行器抓取性能与 shot-scraper 相当,且无需捆绑浏览器引擎。但它存在 CSP 失败、0×0 视口、加载挂起、缺少 HTTP 元数据和浏览器控制有限等明显缺陷。该工具将网页当作程序运行,console.log() 输出到标准输出、异常输出到标准错误。
Research webframe: evaluated as a scraper and a sandbox — An evaluation of webframe found it to be a fast, lightweight browser-JavaScript runner suitable for scraping, with performance comparable to shot-scraper, but with important rough edges including CSP failures, a 0×0 viewport, hanging loads, missing HTTP metadata, and limited browser controls.
webframe is a neat little project from Jeff Lindsay which lets you "run a web page like a program" - you point it at a URL or file and it executes it in a hidden headless web view and outputs console.log() to standard output and any exceptions to standard error.
It's written in Go on top of the glaze library, which provides access to a system browser ("WKWebView on macOS, WebKitGTK on Linux, WebView2 on Windows") so it doesn't need to bundle its own browser engine.
It reminds me of my own shot-scraper javascript tool, albeit in a much smaller package that doesn't depend on Playwright.
I had Claude Opus 5.5 put it through its paces and prepare a research report for me. Here's the prompt I used:
Explore https://github.com/tractordev/webframe try running it and put it though its paces, build a few exploratory prototypes, then evaluate it as a potential sandboxing tool and as a tool for scraping web pages using the same patterns encouraged by the "shot-scraper JavaScript" command (see simonw/shot-scraper on GitHub, docs directory)
来源:Simon Willison · simonwillison.net