無介面Ubuntu伺服器搭建selenium+chromedriver+VNC執行環境

臥顏沉默發表於2019-03-14

搭建背景

  • 有時候我們需要把基於selenium的爬蟲放到伺服器上跑的時候,就需要這樣一套執行環境,其中VNC是虛擬的顯示模式,用於排查定位線上問題以及實時執行情況。

搭建流程

  1. 安裝虛擬輸出裝置:sudo apt-get install xvfb
  2. 下載google-chrome-stable deb包,大部分連結需要翻牆,我這裡下載了一個上傳到github上了,wget https://raw.githubusercontent.com/wycm/md-image/master/2019-03-14/google-chrome-stable_69.0.3497.100-1_amd64.deb
  3. 安裝:sudo dpkg -i google-chrome-stable_69.0.3497.100-1_amd64.deb
  4. 安裝對應依賴:apt-get -f install
  5. 下載對應的chromedriver,wget https://raw.githubusercontent.com/wycm/md-image/master/2019-03-14/chromedriver_linux64.zip
  6. 解壓:unzip chromedriver_linux64.zip
  7. 啟動虛擬化輸出裝置Xvfb :99 -ac -screen 0 1280x1024x24 &
  8. 設定輸出裝置:export DISPLAY=:99
  9. 執行chrome.py腳步(需要安裝:selenium:pip install selenium),程式碼如下:
    from selenium import webdriver
    import time
    
    if __name__ == '__main__':
        options = webdriver.ChromeOptions()
        options.add_argument("--no-sandbox")
        //剛剛解壓的chromedriver路徑
        driver = webdriver.Chrome("/root/wy/chromedriver",chrome_options=options)
        driver.get('https://www.baidu.com')
        print(driver.title)
        time.sleep(1)
        driver.close()
    複製程式碼
  10. 測試環境是否安裝成功,能正確執行說明基本的執行環境已經搭建成功,如下圖
    無介面Ubuntu伺服器搭建selenium+chromedriver+VNC執行環境

VNC安裝

  1. 以上基本的執行環境雖然搭建好了,有時候需要用於線上問題定位和除錯的時候,那就需要有視覺化輸出,VNC就是用於視覺化的。具體安裝步驟如下
  2. 安裝VNC需要的桌面環境:sudo apt-get install --no-install-recommends ubuntu-desktop gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal -y
  3. 安裝VNC server:sudo apt-get install vnc4server -y
  4. 啟動server,並設定輸出裝置號為1:vncserver :1,首次執行會提示你設定密碼。用於在後面使用客戶端登入時需要。
  5. 指定接下來的程式的輸出裝置號為1(就為上一步指定裝置號)。export DISPLAY=:1
  6. 開啟mac的螢幕共享,然後連上這臺遠端server,輸入剛剛設定的密碼。然後執行python chrome.py就能看到這臺server的實時輸出了。如下圖
    無介面Ubuntu伺服器搭建selenium+chromedriver+VNC執行環境
  7. 如果用於線上執行的時候,就沒必要執行VNC server了,直接輸出到Xvfb虛擬裝置就可以了,節省資源。

版權宣告
作者:wycm
出處:juejin.im/post/5c8a59…
您的支援是對博主最大的鼓勵,感謝您的認真閱讀。 本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。

一個程式設計師日常分享,包括但不限於爬蟲、Java後端技術,歡迎關注

相關文章