一、簡介
Selenium是一個用於Web應用程序測試的工具。
Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE,Firefox,Safari,Chrome,Opera等。
在爬蟲上用來模擬正常用戶訪問網頁並獲取數據。
二、安裝(以Chrome爲例)
-
瀏覽器安裝
windows下安裝就不多說了,以下爲服務器(Centos7)的安裝步驟
#下載安裝包到同級目錄下 wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm #安裝 yum install ./google-chrome-stable_current_x86_64.rpm
-
Selenium安裝
pip install selenium
-
驅動下載
selenium是通過ChromeDriver調用的Chrome瀏覽器(其他主流瀏覽器也有相應驅動),所以需要下載ChromeDriver,而且ChromeDriver版本需要與Chrome的版本對應,版本錯誤的話則會運行報錯。
(1)查看Chrome瀏覽器版本
Windows系統查看方法
:打開Chrome瀏覽器 > 右上角三個點 > 設置 > 關於Chrome
Centos7 查看方法
:google-chrome --version
(2)下載相應版本的驅動
下載地址:
Chrome瀏覽器驅動(ChromeDriver):http://npm.taobao.org/mirrors/chromedriver/
Firefox瀏覽器驅動(GeckoDriver):https://github.com/mozilla/geckodriver/releases
IE瀏覽器驅動:http://selenium-release.storage.googleapis.com/index.html
Edge瀏覽器驅動:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
Opera瀏覽器驅動:https://github.com/operasoftware/operachromiumdriver/releases
PhantomJS瀏覽器驅動:https://phantomjs.org/
找到相應的版本:
可以看到我的Chrome版本爲78.0.3904.108
,在上述網址中找到對應的版本,對應大版本(例:78)即可。
裏邊有四個文件,前三個對應相應的系統(不用區分64位還是32位),notes.txt
文件裏說明了更新內容和支持版本(3)ChromeDriver安裝
Mac/Linux:下載完成解壓後,將文件移動至
/usr/local/bin
目錄中,則可以正常使用
Windows:下載完成解壓後,將文件移動到一個配置了環境變量的文件夾中,例如你的Python安裝文件夾。
三、 簡單使用
這是一個打開百度首頁,在輸入框中輸入‘平頭哥兒’的例子。
import time
from selenium import webdriver
# 打開一個Chrome瀏覽器
driver = webdriver.Chrome() #Chrome瀏覽器
#driver = webdriver.Chrome(r'ChromeDriver路徑') #還可以指定路徑
#driver = webdriver.Firefox() # Firefox瀏覽器
#driver = webdriver.Ie() # IE瀏覽器
#driver = webdriver.Edge() # Edge瀏覽器
#driver = webdriver.Opera() # Opera瀏覽器
#driver = webdriver.PhantomJS() # PhantomJS瀏覽器
# 請求百度首頁
driver.get('https://www.baidu.com')
time.sleep(5) #方便演示,等待五秒
#找到輸入框位置,並輸入'平頭哥兒',百度特性(輸入完內容會自動查)
driver.find_element_by_xpath('//*[@id="kw"]').send_keys('平頭哥兒')
time.sleep(5) #方便演示,等待五秒
driver.quit() #關閉全部窗口
Selenium文集傳送門:
標題 | 簡介 |
---|---|
Python爬蟲 - Selenium(1)安裝和簡單使用 | 詳細介紹Selenium的依賴環境在Windows和Centos7上的安裝及簡單使用 |
Python爬蟲 - Selenium(2)元素定位和WebDriver常用方法 | 詳細介紹定位元素的8種方式並配合點擊和輸入、提交、獲取斷言信息等方法的使用 |
Python爬蟲 - Selenium(3)控制瀏覽器的常用方法 | 詳細介紹自定義瀏覽器窗口大小或全屏、控制瀏覽器後退、前進、刷新瀏覽器等方法的使用 |
Python爬蟲 - Selenium(4)配置啓動項參數 | 詳細介紹Selenium啓動項參數的配置,其中包括無界面模式、瀏覽器窗口大小設置、瀏覽器User-Agent (請求頭)等等 |
Python爬蟲 - Selenium(5)鼠標事件 | 詳細介紹鼠標右擊、雙擊、拖動、鼠標懸停等方法的使用 |
Python爬蟲 - Selenium(6)鍵盤事件 | 詳細介紹鍵盤的操作,幾乎包含所有常用按鍵以及組合鍵 |
Python爬蟲 - Selenium(7)多窗口切換 | 詳細介紹Selenium是如何實現在不同的窗口之間自由切換 |
Python爬蟲 - Selenium(8)frame/iframe表單嵌套頁面 | 詳細介紹如何從當前定位的主體切換爲frame/iframe表單的內嵌頁面中 |
Python爬蟲 - Selenium(9)警告框(彈窗)處理 | 詳細介紹如何定位並處理多類警告彈窗 |
Python爬蟲 - Selenium(10)下拉框處理 | 詳細介紹如何靈活的定位並處理下拉框 |
Python爬蟲 - Selenium(11)文件上傳 | 詳細介紹如何優雅的通過send_keys()指定文件進行上傳 |
Python爬蟲 - Selenium(12)獲取登錄Cookies,並添加Cookies自動登錄 | 詳細介紹如何獲取Cookies和使用Cookies進行自動登錄 |
Python爬蟲 - Selenium(13)設置元素等待 | 詳細介紹如何優雅的設置元素等待時間,防止程序運行過快而導致元素定位失敗 |
Python爬蟲 - Selenium(14)窗口截圖 | 詳細介紹如何使用窗口截圖 |
Python爬蟲 - Selenium(15)關閉瀏覽器 | 詳細介紹兩種關閉窗口的區別 |
歡迎留言吐槽