Linux上部署python+selenium+webdriver常見問題解決方案

折騰了幾天的WechatScraper終於部署到Linux服務器上能生產使用了
用篇文章來記錄下部署過程當中遇到的各類bug和坑。html

1. 運行問題

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

2. Executable path

這個常見的報錯是web

the path to the driver executable must be set blabla...

當webdriver調起瀏覽器時,須要在系統路徑中找到geckodriver或者chromedriver這些能操控瀏覽器的驅動,因此咱們須要將這些文件複製到/usr/bin或者/usr/local/bin或者/usr/sbin這幾個文件夾下,這樣才能讓webdriver順利調起瀏覽器供咱們使用。chrome

3. chrome not reachable

這個報錯比較奇怪,並且當直接去以瀏覽器

cd /path/to/chromedriver && ./chromedriver

這個命令執行的時候,會報錯glibc-版本號未安裝,這個猜想是由於版本不匹配致使的,由於我後來換了低版本的chromedriver是能夠直接運行的,因此若是你的系統上glibc版本不高的話,建議使用低版本的chrome和chromedriver。服務器

結語

暫時想到的就這幾個,若是有什麼問題,能夠直接在評論區回覆,若是有其它解決方案或者錯誤之處,歡迎指出。測試

相關文章
相關標籤/搜索