Selenium是一個用於Web應用程序測試的工具。html
Selenium測試直接運行在瀏覽器中,就像真正的用戶在操做同樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Firefox,Safari,Chrome,Opera等。web
這個工具的主要功能包括:測試與瀏覽器的兼容性——測試你的應用程序看是否可以很好得工做在不一樣瀏覽器和操做系統之上。測試系統功能——建立迴歸測試檢驗軟件功能和用戶需求。chrome
而用在爬蟲上則是模擬正經常使用戶訪問網頁並獲取數據。咱們能夠利用它來模擬用戶點擊訪問網站,繞過一些複雜的認證場景api
經過selenium + 驅動瀏覽器這種組合能夠直接渲染解析js,繞過大部分的參數構造和反爬瀏覽器
注意事項:安全
新版本的Selenium已經不支持phantomis,原做者也已經放棄維護該項目了。工具
使用selenium驅動chrome瀏覽器須要下載chromedriver,並且chromedriver版本須要與chrome的版本對應,版本錯誤的話則會運行報錯。測試
Chromedriver下載地址:http://chromedriver.storage.googleapis.com/index.html網站
Chromedriver與Chrome版本映射表:google
chromedriver版本 | 支持的Chrome版本 |
---|---|
v2.37 | v64-66 |
v2.36 | v63-65 |
v2.35 | v62-64 |
v2.34 | v61-63 |
v2.33 | v60-62 |
v2.32 | v59-61 |
v2.31 | v58-60 |
v2.30 | v58-60 |
v2.29 | v56-58 |
v2.28 | v55-57 |
v2.27 | v54-56 |
v2.26 | v53-55 |
v2.25 | v53-55 |
v2.24 | v52-54 |
v2.23 | v51-53 |
下載完成解壓後,將文件移動至/usr/local/bin
目錄中,則能夠正常使用。
下載完成解壓後,將文件移動到一個配置了環境變量的文件夾中,例如你的Python安裝文件夾。
將解壓的exe文件放在環境變量下是爲了方便使用,若是不在環境變量中,還能夠在代碼裏面聲明驅動的位置。
可是爲了方便項目部署的,或者爲了方便容易打包,咱們能夠將Chromedriver.exe放到咱們的項目目錄中,
而後再初始化Chrome Webdriver對象時,傳入chromedirver.exe的路徑
以下所示:
from selenium import webdriver browser = webdriver.Chrome(executable_path='chromedriver.exe')
引號以內的就是路徑,可根據本身文件的放置狀況來填寫
PhantomJS的安裝
下載連接,下載好的壓縮文件解壓到環境變量中,建議解壓到Python中,安全起見,將Phantomjs.exe文件複製一份放在Python3文件夾下。
Selenium
的安裝很是簡單,直接pip就能夠搞定。
pip install selenium
如今運行一個空白頁面的瀏覽器窗口
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 實例化一個啓動參數對象 chrome_options = Options() # 設置瀏覽器窗口大小 chrome_options.add_argument('--window-size=1366,768') # 啓動瀏覽器 browser = webdriver.Chrome(chrome_options=chrome_options)
點擊運行,就會自動彈出一個空白的瀏覽器窗口了
接下來,咱們再來嘗試訪問一下百度的首頁面
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 實例化一個啓動參數對象 chrome_options = Options() # 設置瀏覽器窗口大小 chrome_options.add_argument('--window-size=1366,768') # 啓動瀏覽器 browser = webdriver.Chrome(chrome_options=chrome_options) # 請求百度首頁 browser.get('http://www.baidu.com')
這樣程序點擊運行,彈出的瀏覽器會自動轉到百度的首頁了
更加詳細的內容,會在接下來的內容中講到