Cyber Coding Course

師其意,不泥其跡

用Rendertron解決Polymer SEO問題(Polymer Summit 2017)

文章下方的影片介紹如何使用rendertron解決Polymer SEO優化的問題。
在我fork的source中,已調整支援中文環境。
並且還加入了pdf的API接口,也可以拿來轉pdf。

原始Rendertron GitHub連結
https://github.com/GoogleChrome/rendertron

我fork的source已調整中文環境,可以參考我的GitHub上的設定.
另外,我也調整了source加上了pdf的API,所以使用我的source去build image,會多一個pdf的按鈕。
https://github.com/DevinY/rendertron
 

關於'ECONNREFUSED'的錯誤:

在您的內核缺少用戶命名空間支持或嘗試訪問容器中的服務時,會碰到ECONNREFUSED錯誤時,
以下兩種推薦方法可以解決此問題:
  1. [建議] - 使用 Jessie Frazelle' seccomp profile 及  -security-opt  旗標
  2. 利用  --cap-add SYS_ADMIN  旗標
一、透過wget下載Jessie Frazelle的Chrome瀏覽器的seccomp配置文件(chrome.json)啟動帶有內置映像的容器:
wget https://raw.githubusercontent.com/jfrazelle/dotfiles/master/etc/docker/seccomp/chrome.json -O ~/chrome.json
docker run -it -p 8080:8080 --security-opt seccomp=$HOME/chrome.json --name rendertron-container rendertron


二、使用SYS_ADMIN建立及執行的映像檔的容器:
docker run -it -p 8080:8080 --cap-add SYS_ADMIN --name rendertron-container rendertron

關於中文支援

您可能有發現了,原始的docker環境中build出來的image是英文的。
所以透過API抓圖時也是英文的(測試網址):
https://render-tron.appspot.com/screenshot/https://www.google.com

如果您不想自己build image
可以直接使用我先build好的image,
執行方式如下:
一、先下載chrome.json到自己host的家目錄(只需做一次,如果您使用Mac系統未安裝wget,請改用其他方式下載該json檔):
wget https://raw.githubusercontent.com/jfrazelle/dotfiles/master/etc/docker/seccomp/chrome.json -O ~/chrome.json

二、建立container,這裡我加了--rm的參數,停止時,我要把container移掉,試試抓圖的功能,就會是中文的囉。
docker run --rm -it -p 8080:8080 --security-opt seccomp=$HOME/chrome.json --name rendertron-container deviny/rendertron

註:
如果使用 npm install 的方式安裝,並使用 npm start 執行,
您的系統環境是中文的即可顯示中文。
npm start
> bot-render@1.0.0 start /Users/devin/rendertron
> node src/main.js
Chrome launched with debugging on port 54791
Listening on port 3000


關於rendertron如何實際的運用,詳細介紹,請看下方影片說明:

作者: Devin Yang