使用selenium 和 chromedriver遇到的一些問(wèn)題

前言

當(dāng)準(zhǔn)備開(kāi)始爬蟲(chóng)的第三個(gè)練習(xí)爬取淘寶美食的時(shí)候,根據(jù)學(xué)習(xí)教程需要用到selenium(一款比較優(yōu)秀的web端自動(dòng)化測(cè)試框架),已經(jīng)配合使用谷歌瀏覽器的驅(qū)動(dòng)chromedriver。最開(kāi)始我覺(jué)得只要下載了selenium安裝包以后,然后在下載chromedriver(我以為是插件一類,安裝在Google瀏覽器就行)就完事OK了,但是不然,現(xiàn)在簡(jiǎn)單記述一下我配置的過(guò)程,我的電腦系統(tǒng)是MacOS。

安裝selenium

  • 我查到的安裝方法大致分為兩類,一種是用pip install -U selenium
    但是試了很多次都報(bào)錯(cuò),以現(xiàn)在的水平也暫時(shí)看不太懂,
  • 轉(zhuǎn)戰(zhàn)另外一種安裝方式,用homebrew,貌似最近幾次我框架安裝的時(shí)候遇到問(wèn)題,brew install selenium-server-standalone,成功
  • 安裝完以后一臉懵逼,根據(jù)提示,啟動(dòng)服務(wù)selenium-server -port 4444,啟動(dòng)了再根據(jù)提示0.0.0.0:4444,這個(gè)就是說(shuō)外網(wǎng)也可以訪問(wèn),然后我用本地訪問(wèn),發(fā)現(xiàn)服務(wù)啟動(dòng)了,z至此selenium算是安裝成功了
    selenium服務(wù)啟動(dòng)成功

pycharm以及Python環(huán)境遇到的坑

  • 當(dāng)selenium安裝結(jié)束以后,我在pycharm新建項(xiàng)目準(zhǔn)備測(cè)試的時(shí)候,發(fā)現(xiàn)selenium無(wú)法導(dǎo)入一直爆紅
    from selenium import webdriver),
    執(zhí)行項(xiàng)目報(bào)錯(cuò)
    ImportError: No module named selenium
    后來(lái)反復(fù)查看確實(shí)是安裝成功了,但是項(xiàng)目引用不到,忘記從哪里看到,有可能是路徑問(wèn)題,我看了一眼selenium的安裝路徑,也沒(méi)問(wèn)題
    brew info selenium-server-standalone

  • 后來(lái)經(jīng)過(guò)反復(fù)查詢發(fā)現(xiàn)在Python環(huán)境的site-packages目錄下,確實(shí)沒(méi)有selenium,然后去新建項(xiàng)目的時(shí)候發(fā)現(xiàn)系統(tǒng)中轉(zhuǎn)了幾套Python環(huán)境,但是系統(tǒng)自帶的確實(shí)沒(méi)有selenium


  • 最終在另外一套帶有selenium的環(huán)境中新建項(xiàng)目,解決??,順便記錄一下路徑/usr/local/lib/python2.7/site-packages/seleniu

chromedriver的坑

  • 本想今天一天時(shí)間在學(xué)習(xí)一套爬蟲(chóng)項(xiàng)目,但是前邊的坑坑坑就弄了一上午,下面說(shuō)下chromedriver
  • 在前言中我覺(jué)得chromedriver是個(gè)插件,下載了就好,但是最后下載了然后寫(xiě)測(cè)試代碼,理論上講應(yīng)該呼起一個(gè)谷歌瀏覽器,但是
from selenium import webdriver
dr = webdriver.Chrome()

報(bào)錯(cuò)信息如下
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH
第一感覺(jué)是把chromedriver放下項(xiàng)目目錄之下,項(xiàng)目能自動(dòng)搜躲到,但是不能,后來(lái)經(jīng)過(guò)百般Google,查到一個(gè)辦法

import  os
chromedriver = "/usr/local/Cellar/chromedriver/2.28/bin/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://stackoverflow.com")
driver.quit()

依舊報(bào)錯(cuò),后來(lái)又是偶然,發(fā)現(xiàn)chromedriver不單單是光下載就行了,也是一個(gè)單獨(dú)的軟件吧,所以依舊使用homebrew進(jìn)行了安裝brew install chromedriver,然后回看bin目錄/usr/local/Cellar/chromedriver/2.28/bin,將其復(fù)制到上邊的代碼chromedriver =的后邊,見(jiàn)證奇跡的時(shí)刻,運(yùn)行終于呼起了Google瀏覽器

  • 然后還不算完,我覺(jué)得這樣的路徑肯定太特殊了,既然涉及到bin,
    那么一定有一種配置環(huán)境變量的方式,結(jié)果真有??????
vim ~/.bash_profile
          export PATH=$PATH:ChromeDriver目錄(注意,是存放的目錄,不是這個(gè)文件,就是bin的目錄)
          :wq
          source ~/.bash_profile  

簡(jiǎn)言之,就是在 ~/.bash_profile 文件中加入
export PATH=$PATH:ChromeDriver的bin路徑

  • OK,結(jié)束
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容