純終端Linux環境或者無掛載顯示卡Linux環境執行Chrome例項

周澤彪發表於2020-12-16

專案場景:

1、用selenium+chrome 模擬瀏覽器在某雲伺服器爬蟲。
2、在沒有掛載顯示卡的環境執行chrome。

問題描述:

執行Chrome,報錯:

[19615:19615:0219/152933.751028:ERROR:browser_main_loop.cc(1512)] Unable to open X display.

原因分析:

雲伺服器或者沒有掛載顯示卡的環境都無法建立Chrome視窗例項。 需要虛擬一個環境給Chrome建立視窗。

解決方案:

可以用Xvfb,它不需要額外的硬體。
如果還沒有安裝Xvfb,安裝Xvfb並執行以下步驟:

sudo apt-get install -y xvfb

安裝依賴讓 “headless” chrome/selenium 生效:

sudo apt-get -y install xorg xvfb gtk2-engines-pixbuf
sudo apt-get -y install dbus-x11 xfonts-base xfonts-100dpi xfonts-75dpi xfonts-cyrillic xfonts-scalable

可選,但很好用。用於捕捉Xvfb的螢幕截圖。

sudo apt-get -y install imagemagick x11-apps

確保Xvfb在每次啟動盒子/vm的時候都會啟動:

Xvfb -ac :99 -screen 0 1280x1024x16 & export DISPLAY=:99

可以執行 google-chrome了

相關文章