前言
當(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é)束