Centos下實(shí)現(xiàn)python+selenium+firefox(geckodriver)

1. 系統(tǒng):centos 7.x? ,python:3.6.3


2.下載驅(qū)動(dòng)

wget https://github.com/mozilla/geckodriver/releases/download/v0.19.1/geckodriver-v0.19.1-linux64.tar.gz

tar -zxvf geckodriver-v0.19.1-linux64.tar.gz

ln -s 路徑/geckodriver /usr/bin/geckodriver

3.下載firefox

wget https://ftp.mozilla.org/pub/firefox/releases/56.0.2/linux-x86_64/en-US/firefox-56.0.2.tar.bz2

tar xjvf firefox-56.0.2.tar.bz2? ? ? ? # need yum install?bzip2

ln -s 路徑/firefox/firefox /usr/bin/firefox

4.安裝selenium

wget https://files.pythonhosted.org/packages/14/d6/650f5d2e149b83cd24989653efedf47a24cafb72e9d2dd03191a9f52f2f4/selenium-3.8.1-py2.py3-none-any.whl

pip3 install selenium-3.8.1-py2.py3-none-any.whl

5.安裝運(yùn)行依賴

yum install gtk3 gtk3-devel

yum install Xvfb libXfont xorg-x11-fonts*

pip3 install pyvirtualdisplay

6.測(cè)試

#!/usr/bin/python3

# -*- coding:utf-8 -*-

from selenium import webdriver

from pyvirtualdisplay import Display

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

display = Display(visible=0, size=(800,600))

display.start()

binary = FirefoxBinary('路徑/firefox/firefox')

driver = webdriver.Firefox(firefox_binary=binary)

driver.get('https://www.baidu.com')

print(driver.title)

driver.quit()

display.stop()

tag:

1. 若是*driver訪問python目錄下可以在代碼中省略掉路徑;切記版本問題。

2. 同理chrome + chromedriver 操作流程也一樣:

先安裝:yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

下載驅(qū)動(dòng):wget?http://cdn.npm.taobao.org/dist/chromedriver/72.0.3626.7/chromedriver_linux64.zip

賦權(quán)限:chmod +x chromedriver

測(cè)試代碼:


滴滴,學(xué)生卡。

======遇到的問題

1.?OSError: [Errno 40] Too many levels of symbolic links: 'geckodriver'

解決:在建立軟鏈接時(shí),要使用絕對(duì)路徑,或者在py文件中直接使用絕對(duì)路徑

2.selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities

解決:看一些資料解釋版本不對(duì)應(yīng),我的解決辦法是通過yum install gtk3 gtk3-devel

yum install Xvfb libXfont xorg-x11-fonts*

pip3 install pyvirtualdisplay

3.selenium.common.exceptions.WebDriverException: Message: Process unexpectedly closed with status: 1

解決:from selenium.webdriver import FirefoxOptions

opts = FirefoxOptions()

opts.add_argument("--headless")

browser = webdriver.Firefox(firefox_options=opts)

======DEMO

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容