原文?https://www.cyberlight.xyz/passage/python3-selenium-linux
最近嘗試在服務(wù)器端運行selenium稻艰,做下此筆記拒逮,其間參考了大量相關(guān)教程浸踩,感謝每一位共享學習記錄的網(wǎng)友虑灰!
由于windows10使用的Chrome濒旦,我繼續(xù)嘗試在CentOS運行娜庇,終于成功!以下是學習記錄:
環(huán)境:CentOS8, Python 3.6.8
一.CentOS上安裝Chrome
請確保身份為root爷恳,進入CentOS終端有缆,然后依次輸入
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum install -y google-chrome-stable_current_x86_64.rpm
查看Chrome版本
/opt/google/chrome/chrome -version
PS: chrome卸載方法
yum autoremove -y google-chrome
之后,需要解決不能在root下運行chrome的錯誤 温亲。Chrome安裝的根目錄默認在 /opt/google/chrome/ 棚壁。進入CentOS終端,輸入
vi /opt/google/chrome/google-chrome
移動光標到最下面栈虚,按下鍵盤的”i”袖外,將 exec -a “$0” “$HERE/chrome” “$@” 后面加上 –user-data-dir –no-sandbox 。整條命令修改后為
exec -a “$0” “$HERE/chrome” “$@” –user-data-dir –no-sandbox
如圖节芥,將下圖一改為下圖二
接著依次按鍵盤 “esc” + “:” + “wq” 保存并退出
二.安裝Chrome驅(qū)動
一定要根據(jù)Chrome版本號安裝驅(qū)動在刺,由于我的Chrome版本為80.0.3987.132(版本一定要下對逆害,否則Python運行會報錯)头镊。經(jīng)測試,我應(yīng)該下載官網(wǎng)的80.0.3987.16魄幕,而不是80.0.3987.106
電腦進入Chrome驅(qū)動官網(wǎng)https://chromedriver.chromium.org/downloads
鼠標右鍵點擊Linux版本相艇,復(fù)制鏈接。(如纯陨,我的鏈接為https://chromedriver.storage.googleapis.com/80.0.3987.16/chromedriver_linux64.zip)
進入Centos坛芽,切換至系統(tǒng)根目錄(注意留储,不是root根目錄)。輸入以下命令切換至Chrome安裝目錄
cd /opt/google/chrome
wget + 上面復(fù)制的鏈接( 如咙轩,我的鏈接為https://chromedriver.storage.googleapis.com/80.0.3987.16/chromedriver_linux64.zip)
wget https://chromedriver.storage.googleapis.com/80.0.3987.16/chromedriver_linux64.zip
解壓下載的zip
unzip chromedriver_linux64.zip
此時驅(qū)動已安裝完畢获讳。
三.Python測試
在Linux下創(chuàng)建Python文件
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--no-sandbox') #讓Chrome在root權(quán)限運行
chrome_options.add_argument('--disable-dev-shm-usage') #不打開圖形界面
chrome_options.add_argument('--headless') #瀏覽器不提供可視化頁面
chrome_options.add_argument('blink-settings=imagesEnabled=false') #不加載圖片, 提升速度
chrome_options.add_argument('--disable-gpu') #谷歌文檔提到需要加上這個屬性來規(guī)避bug
driver = webdriver.Chrome(chrome_options=chrome_options, executable_path='/opt/google/chrome/chromedriver') #Chrome驅(qū)動的位置,此學習記錄中安裝到了Chrome程序根目錄活喊,該路徑為絕對路徑
driver.get('https://www.baidu.com')
content = driver.page_source.encode('utf-8')
print(content)
如返回百度的html源碼丐膝,說明程序運行正常,能盡情在Linux使用selenium爬蟲了
PS: 運行selenium如遇錯誤 error: DevToolsActivePort file doesn’t exist 钾菊,很可能是安裝的Chrome驅(qū)動版本不對帅矗!
評論區(qū)歡迎分享你的學習記錄和解決方法哦