跳到正文
Simon Willison·· 11 小时前AI 评分26

webframe:作为抓取工具与沙箱的实测评估

webframe: evaluated as a scraper and a sandbox

AI 导读

Jeff Lindsay 的 webframe 项目可把网页当程序运行:指向 URL 或文件后,它在隐藏的无头 WebView 中执行,将 console.log() 输出到标准输出、异常输出到标准错误。该项目用 Go 编写,基于 glaze 库调用系统浏览器(macOS 的 WKWebView、Linux 的 WebKitGTK、Windows 的 WebView2),无需自带浏览器引擎。Simon Willison 认为它类似自己的 shot-scraper javascript 工具,但体积更小且不依赖 Playwright。他让 Claude Opus 5.5 实际运行该项目、构建若干探索性原型,并分别评估其作为沙箱工具和按 shot-scraper JavaScript 模式抓取网页的潜力。

正文

Research: webframe: evaluated as a scraper and a sandbox

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)

Tags: browsers, go, javascript, jeff-lindsay, shot-scraper

来源:Simon Willison · simonwillison.net