摘自:https://zhuanlan.zhihu.com/p/31670033
Rendertron:JavaScript Web 富應用的一個老問題是如何使這些頁面的動態渲染部分可供搜索引擎檢索。為此開發人員采用了各種各樣的技巧,包括使用 React.js 的服務端渲染,外部服務或預渲染內容。現在谷歌 Chrome 新的 headless 模式又貢獻了一個新的技巧—— Rendertron,即 Chrome的headless 渲染解決方案。它在一個 Docker 容器中封裝了一個 headless 的 Chrome 實例,可以作為獨立的HTTP服務器來部署。無法渲染JavaScript的爬蟲機器人可以被路由到此服務器來進行渲染。 雖然開發人員也可以部署自己的 headless Chrome代理並配置相關的路由機制,但 Rendertron 簡化了配置和部署過程,並提供了令爬蟲機器人進行檢測和路由的中間件示例代碼。
谷歌 Chrome 新的 headless 模式:
有一個業務,就是服務器端抓圖(把一件事簡單做出來容易,把一件事做到極致真不容易):
有兩種思路:
用Selenium啟動FireFox(Chrome),要想處理多用戶並發問題,解決辦法就是用Selenium Grid,阿里雲端加機器,就會增加成本。現在可以考慮啟動多個無頭模式的Chrome,來提高一些效率了。
也可以改造F2Test這個方案,但是需要熟悉NodeJs,並且需要做大量的改造工作,時間成本較高。