是否有任何node.js的無頭瀏覽器支持將渲染後的頁面轉儲到文件中?我知道phantomjs支持渲染到文件,但它不能在node.js上運行。我知道zombie.js是一個node.js無頭瀏覽器,但它不支持對文件進行渲染。無頭node.js javascript瀏覽器的截圖功能?
回答
這可能看起來像一點點開銷的解決方案......
您可以使用Mozilla Firefox瀏覽器與MozRepl插件。基本上這個插件爲您提供了一個到您的Firefox的telnet端口,它允許您從外部控制瀏覽器。您可以打開網址,截屏等。 使用Xvfb服務器運行Firefox將以無頭模式運行它。
現在,你只需要控制從node.js中的瀏覽器之外我見過一些例子,其中有人在Firefox的chrome.js中實現了一個類似http的接口。所以你可以運行一個http命令來獲取屏幕截圖。然後您可以使用node.js中的http調用。這可能看起來很奇怪,但實際上卻可能適合你。
我在異步模式下運行在生產中稍作修改的版本使用Perl Mojolicious觸發截圖。但是,有一個小問題。當需要插件時,它們可以工作,但是Flash通常在可見區域時被激活,這不會發生,所以電影/閃光燈事件可能不會被初始化。
我懷疑你會發現什麼,是要工作以及phantomjs。我只會將渲染視爲異步後端進程,並在您的主要node.js進程的子進程中執行phantom並稱之爲一天。渲染一個網頁很難,因爲幻影是基於WebKit的,它實際上可以做到。我不認爲會有一個節點庫能夠將網頁渲染到不是基於現有瀏覽器渲染引擎構建的圖形文件。但是也許有一天,phantomjs將更加無縫地與節點集成。
挑戰接受 –
我完全期待後續鏈接@David Murdoch。 – NateDSaint
今天我砍了一下,並沒有達到我所希望的那麼遠。我正在計劃將jsdom,node-canvas和html2canvas混合在一起。我沒有意識到jsdom沒有實現尺寸。 :-( –
您可能會發現這是很有幫助的,但它不是特定的JavaScript。
有一個稱爲「wkhtmltopdf」我理解包括使用QT webkit的部件JavaScript支持基於Webkit的工具。它以PDF格式輸出可視化表示(如果您願意,可以截圖)。
FWIW,也有在這裏討論PHP綁定:php-wkthmltox
如果「渲染到文件」的意思是「截圖「,我認爲這是作者的意圖,這是一個體面的答案。:) –
有一個叫做節點奇美拉項目。雖然它不像Phantomjs那樣成熟,但它具有您提到的所有功能:它在本機Nodej上運行,並允許您將頁面呈現爲文件。存儲庫位於:https://github.com/deanmao/node-chimera。它有一些例子可以滿足你的需求。
看起來這個項目不再被維護了 –
嘗試nightmare,它使用的電子,它比phantomjs方式速度更快,它的API方便,採用現代ES6的JavaScript。
的Chrome瀏覽器開發團隊已經發布了Puppeteer可以在節點使用。它使用Chrome與無頭選項。
- 1. PhantomJS等無頭瀏覽器如何截圖?
- 2. Android的無頭瀏覽器?
- 3. Node.js,processing.js和無瀏覽器
- 4. 瀏覽器屏幕截圖
- 5. 無頭鍛造瀏覽器
- 6. Katalon Debian無頭瀏覽器
- 7. ?_escaped_fragment_ = - 無頭瀏覽器
- 8. 使用HTML5/Canvas/JavaScript在瀏覽器中截取屏幕截圖
- 9. WP7中的位圖瀏覽器截圖
- 10. Javascript功能不能在火狐瀏覽器或Safari瀏覽器中工作
- 11. 如何攔截Windows的開放URL默認瀏覽器功能
- 12. Javascript功能無法在谷歌瀏覽器中執行任務
- 13. 回傳後,Javascript功能在Chrome瀏覽器中無法使用
- 14. Chrome瀏覽器無法識別javascript功能
- 15. PS3瀏覽器功能
- 16. 無頭Chrome瀏覽器屏幕截圖的最大高度爲16,384px?
- 17. Node.js不執行瀏覽器的數據庫功能
- 18. 使用Node.js無頭瀏覽器與硒混合?
- 19. 如何在Windows 7上安裝Zombie JS? (node.js無頭瀏覽器)
- 20. 圖像加載放映功能由JavaScript在移動瀏覽器
- 21. Javascript - 在Node.js中導出vs瀏覽器
- 22. 無法調整無頭Chrome瀏覽器
- 23. Node.js selenium webdriver - 在測試中獲取瀏覽器功能?
- 24. 用於GAE的Python無頭瀏覽器
- 25. 適用於iOS的無頭瀏覽器?
- 26. 基本驗證的無頭瀏覽器
- 27. Geb中的新無頭Chrome瀏覽器
- 28. C#(.NET)的無頭瀏覽器?
- 29. Selenium多個瀏覽器屏幕截圖
- 30. 瀏覽器截圖wordpress插件
您是否在尋找使用jsdom的項目?我知道有一些這樣做,只是忘了名字 – wesbos
這裏有一個新的幻影節點包裝,可以讓你從節點運行phantomjs ..還沒有嘗試過,但它看起來很有前途:https://github.com/sgentle/phantomjs-node – ZimSystem
Wes,jsdom創建和操作文檔對象模型,它們完全是非圖形內存數據結構。這個問題是關於完全呈現一個圖形網頁,這完全是另一回事。 –