Simon Willison 在其部落格上釋出了一篇研究筆記,記錄了對 Jeff Lindsay 開發的小型開源專案 webframe 的評估。webframe 的核心理念是“把網頁當作程式來執行”:使用者給它一個網址或本地檔案,它就會在一個隱藏的無頭 Web 檢視中執行該頁面,並把頁面裡的 console.log() 輸出到標準輸出,把丟擲的異常輸出到標準錯誤。這讓它同時具備指令碼執行器和頁面載入器的雙重身份。
從技術實現上看,webframe 使用 Go 語言編寫,建立在 glaze 庫之上。glaze 的作用是訪問作業系統自帶的瀏覽器元件——在 macOS 上是 WKWebView,在 Linux 上是 WebKitGTK,在 Windows 上是 WebView2。因此 webframe 自身不必捆綁任何瀏覽器引擎,體積得以保持很小。Simon Willison 認為它與自己的 shot-scraper javascript 工具思路相近,但 webframe 的包體明顯更小,而且不依賴 Playwright 這一整套較重的自動化框架。
為了系統地檢驗這個專案,Simon 讓 Claude Opus 5.5 實際動手跑一遍。他給出的提示要求模型瀏覽 webframe 的 GitHub 倉庫、嘗試執行它、充分測試其功能、構建若干探索性原型,然後從兩個角度做出評價:一是它作為沙箱工具的潛力,二是它作為網頁抓取工具的可用性,並且抓取評價要參照 shot-scraper JavaScript 命令所倡導的使用模式。
評估得出的總體結論是:webframe 是一個快速、輕量的瀏覽器 JavaScript 執行器,適合用於網頁抓取,效能表現與 shot-scraper 處於同一水平。但報告同時指出它有幾個不可忽視的粗糙之處。首先,它可能受到內容安全策略(CSP)的阻斷而導致執行失敗;其次,它使用的視口是 0×0,這意味著依賴頁面尺寸的指令碼可能行為異常;第三,某些頁面載入會卡住不返回;第四,它缺少可供使用的 HTTP 後設資料;最後,它對瀏覽器的控制能力相當有限。這些問題使得它目前更適合輕量、可控的抓取任務,而不是作為通用或強隔離的沙箱方案。
這篇研究筆記收錄於 Simon Willison 的部落格,釋出日期標註為 2026 年 10 月 26 日,相關標籤包括瀏覽器、Go、JavaScript、Jeff Lindsay 以及 shot-scraper。對於關注無頭瀏覽器、網頁抓取與輕量執行環境的人來說,這份評估提供了一個有價值的實踐參考。