折騰了幾天的WechatScraper終於部署到Linux服務器上能生產使用了
用篇文章來記錄下部署過程當中遇到的各類bug和坑。html
webdriver在有GUI界面的系統上運行是隻須要下載chromedriver或者geckodriver等就能直接帶動瀏覽器運行,只須要建立一個瀏覽器實例就好了python
from selenium import webdriver broswer = webdriver.Chrome(executable_path=/path/to/chromedriver, chrome_options)
在有些不帶GUI界面的Linux機器上,若是想要使用webdriver,首推的方案是Python+Selenium+PhantomJS,PhantomJS是一個無頭瀏覽器,即便沒有GUI界面也能正常運行,經常使用於測試等環境。
由於沒有GUI,若是咱們想使用Chrome/Firefox等瀏覽去,咱們就須要Xvfb和python的pyvirtualdisplay庫,給瀏覽器創造一個運行環境,這樣瀏覽器就能順利運行了。git
注:實際檢測,PhantomJS在獲取搜索結果的時候跟Firefox/Chrome差異很大,具體緣由不太清楚,但願有人能解惑。github
這個常見的報錯是web
the path to the driver executable must be set blabla...
當webdriver調起瀏覽器時,須要在系統路徑中找到geckodriver或者chromedriver這些能操控瀏覽器的驅動,因此咱們須要將這些文件複製到/usr/bin
或者/usr/local/bin
或者/usr/sbin
這幾個文件夾下,這樣才能讓webdriver順利調起瀏覽器供咱們使用。chrome
這個報錯比較奇怪,並且當直接去以瀏覽器
cd /path/to/chromedriver && ./chromedriver
這個命令執行的時候,會報錯glibc-版本號
未安裝,這個猜想是由於版本不匹配致使的,由於我後來換了低版本的chromedriver是能夠直接運行的,因此若是你的系統上glibc版本不高的話,建議使用低版本的chrome和chromedriver。服務器
暫時想到的就這幾個,若是有什麼問題,能夠直接在評論區回覆,若是有其它解決方案或者錯誤之處,歡迎指出。測試