[基礎]-selenium + phantomjs/chrome/Firefox 的安裝與使用[2018]
不用即忘,做為一名碼奴,相信這話得到大多數人的認可。做為一名有多年經驗的爬手,有時也要經常查詢曾經用到的知識。這不,近期有一段時間沒有接觸模擬爬取的,電腦系統也因某些原因重新了,所有環境都得從0開始。於是,發現想用selenium時瞬間忘記當時是怎麼安裝的了,有時也會碰到一些莫名其妙的問題上網查了半天也不得其果,今天正好有時間,打算好好溫習一下這塊基礎知識,順便記錄下來,方便以後查閱。
這裡大概說一下selenium,算是給一些剛入門的夥伴預熱一下。首先,selenium本身是一個自動化測試工具,利用它我們可以驅動瀏覽器來執行特定的動作,比如點選、下拉、雙擊等操作。它本來只流行於測試或運維這一小圈子,後來,正是各路“爬手”的使用,把它慢慢的推廣起來,直到今天,它依然是爬蟲某些領域很重要的,不可替代的技術方案之一。特別是對JS渲染的頁面,或動態頁面,或實現模擬登入,非常方便。
使用selenium來抓取網頁,需要配合phantomjs/chrome/Firefox。下面詳細介紹這幾個工具的安裝。
目錄
一、selenium安裝
截止2018.8.30 我下載的最新版本是3.14
相關連結:
1.1 windows下安裝
(1)pip安裝
執行如下命令即可:
pip3 install selenium
這是最優先推薦的安裝方式。
(2)wheel安裝
到PyPI下載wheel檔案進行安裝 。
下載地址:https://pypi.org/project/selenium/#files
然後進入wheel檔案所在目錄,使用pip安裝:
pip3 install selenium-3.14.0-py2.py3-none-any.whl
1.2 linux下安裝
基本同windows。
到此,我們已經成功安裝了selenium,但還不能用它來配合Chrome,Firfox,Phantomjs瀏覽器來抓取內容,還需要安裝對應的瀏覽器驅動模組。
1.3 驗證安裝
安裝結束,需要驗證上述安裝是否成功,可進入python命令列互動模式,匯入import selenium,如沒報異常則表示成功:
D:\>python3
Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium
>>>
二、ChromeDriver安裝
ChromeDriver是用來驅動谷歌瀏覽器。
首先下載谷歌瀏覽器,這裡不多說,並記下所下版本,這裡我的版本是68.0.3440.106。
2.1 下載ChromeDriver
相關連結:
官方文件:https://sites.google.com/a/chromium.org/chromedriver/downloads
官方下載地址:https://sites.google.com/a/chromium.org/chromedriver/downloads
淘寶映象下載:http://npm.taobao.org/mirrors/chromedriver/
如下圖所示,每個版本的ChromeDriver僅支援某範圍內的chrome瀏覽器版本,如果不一致,後面呼叫時會出錯。
這裡我下載的版本是2.41:https://chromedriver.storage.googleapis.com/index.html?path=2.41/
2.2 環境變數配置
下載後,將所下載zip包解壓後將chromedriver.exe放到環境變數下即可。
(1) windows下配置
建議將檔案chromedriver.exe放到python的Scripts目錄,如我的:C:\Program Files\python3\Scripts。也可以將其放在其它目錄下,但是需要將此目錄新增到系統環境變數path下。
(2)linux or mac下配置
在linux or mac下,可以將檔案chromedriver.exe放到環境變數或移到環境變數所在目錄裡,如:/usr/bin目錄。
此外,也可以不移動,只需要將檔案chromedriver.exe所在目錄新增到$PATH環境變數中,這樣可以通過修改檔案~/.profile,新增如下命令:
export PATH="$PATH:/usr/local/chromedriver"
儲存退出後,執行如下命令使之馬上生效
source ~/.profile
2.3 驗證安裝
直接在命令列下執行命令:chromedriver,如有如下輸出則說明安裝成功。
python程式碼測試呼叫:
from selenium import webdriver
# b = webdriver.Chrome('C:\Program Files\chromedriver_win32\chromedriver.exe')
b = webdriver.Chrome()
執行後如能彈出瀏覽器則說明OK。
這裡需要注意的是,有時配置chromedriver新增到環境後,若在pycharm開發平臺上執行報異常"找不到指定檔案啥的",則需要重啟下pycharm。
三、GeckoDriver安裝
GeckoDriver主要是用來驅動火狐瀏覽器。
相關連結:
github:https://github.com/mozilla/geckodriver
下載地址:https://github.com/mozilla/geckodriver/releases
下面具體的安裝方式這裡不多說,基本和上述chromedriver,也是需要下載和火狐版本號匹配的GeckoDriver,以及配置環境變數。下面主要說下驗證安裝.
命令列驗證安裝
輸入:geckodriver
如果控制檯有如下輸出則是正常了。
python程式碼驗證
from selenium import webdriver
b = webdriver.Firefox()
如彈出空白火狐瀏覽器,則OK。
四、PhantomJS安裝
上面所述的谷歌或火狐均為有介面的瀏覽器模式,如果抓取量大或長期的,那就不怎麼方便了,當然,目前最新版本的谷歌瀏覽器也有無介面的版本了。而phantomjs是無介面的瀏覽器,更快更節省記憶體。phantomjs是一個無介面的,可指令碼程式設計的webkit瀏覽器引擎,支援多種WEB標準,selenium高度支援phantomjs。
相關連結
官方下載:http://phantomjs.org/download.html
官方文件:http://phantomjs.org/quick-start.html
API介面文件:http://phantomjs.org/api/command-line.html
4.1 phantomjs下載
phantomjs支援多種作業系統,下載時只需要下載對應作業系統平臺即可。這裡我下載的是phantomjs-2.1.1-windows.zip
下載後解壓,將目錄phantomjs-2.1.1-windows\bin新增到系統環境變數中即可。具體操作同章節二。
4.2 驗證安裝
命令列驗證:
phantomjs
執行後如果進入phantomjs的命令列模式,則表示成功,如:
python程式碼驗證:
from selenium import webdriver
b = webdriver.PhantomJS()
b.get('https://baidu.com')
print(b.current_url)
執行之後不會有瀏覽器介面彈出,但實際上phantomjs已經執行起來了。
到此,selenium 的安裝過程已寫完。更多詳情使用請關注部落格。
========================================end 木風卜雨========================================
========================================end 木風卜雨========================================