selenium 是一個用於Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。
常用的當然是模擬Firefox和Chrome,畢竟方便調試。
通過這種可視化、模仿人瀏覽的方式,更爲簡單、直觀的的獲取頁面上的信息,對於菜鳥來說,還是相對友好,會用F12查看要素就好。
使用流程:
1.下載對應瀏覽器webdriver
2.編寫python腳本
下載對應瀏覽器版本的webdriver:
Firefox: https://github.com/mozilla/geckodriver/releases/
Chrome: http://chromedriver.storage.googleapis.com/index.html
編寫腳本
首先導入selenium 庫的 webdriver模塊
from selenium import webdriver
根據需要,有些時候加載頁面緩慢,要等待頁面完成加載,就需要再導入等待的模塊
from selenium.webdriver.support.ui import WebDriverWait
首先,啓動webdriver,這裏以Chrome爲例(注意大小寫,excutable_path參數,用於指定下載的chromedriver.exe的路徑)
browser = webdriver.Chrome(executable_path=r'D:\用xxx\chromedriver.exe')
運行完成以後,會發現有一個chrome瀏覽器被打開,接下來需要讓browser用get方法載入網頁url
browser.get(url)
這個時候,瀏覽器webdriver就打開了一個頁面,接下來就要在頁面當中進行定位,這裏頁面的效果不是右鍵->源代碼的效果,而是F12的效果,就可以開始進行元素定位了。元素定位有多種webdriver的方法,可以參考這篇文章:
史上最全!Selenium元素定位的30種方式
列舉幾種用來定位的方式,Xpath的功能相對來說最爲強大。大家按需下菜。
# 獲取id標籤值
element = browser.find_element_by_id("passwd-id")
# 獲取name標籤值
element = browser.find_element_by_name("user-name")
# 獲取標籤名值
element = browser.find_elements_by_tag_name("input")
# 也可以通過XPath來匹配
element = browser.find_element_by_xpath("//input[@id='passwd-id']")
除了選擇和爬取,也有模仿點擊、輸入的功能,具體可以參見這篇:
selenium教程
https://www.jianshu.com/p/6c82c965c014
據我所知,除了python,java也可以用,功能還是很強大的。