關於安裝和配置的部份,請看:
使用selenium的目的,是模仿瀏覽器來訪問和操控網頁。
所以,我們要先開啟網頁:
from selenium import webdriver
# 建立 webdriver 物件,指明使用phantomjs驅動
driver = webdriver.chrome(
)#如未配置環境變數,**上驅動路徑
# wd = webdriver.chrome(r'd:\webdrivers\chromedriver.exe')
# 呼叫webdriver 物件的get方法 可以讓瀏覽器開啟指定**
driver.get(
'')#get方法會一直頁面被完成載入,然後才繼續程式
開啟瀏覽器後,還不能開始任務。
我們還得找到想要操控的網頁元素。
定位元素的8種方式:
使用下面的方法,查詢指定的元素進行操作即可
find_elements_by_tag_name 根據標籤名找
find_element_by_id 根據id找節點
find_elements_by_name 根據name找
find_elements_by_xpath 根據xpath查詢
find_elements_by_class_name 根據class名字查詢
find_element_by_css_selector 根據css定位
find_elements_by_link_text 通過鏈結文字定位
find_elements_by_partial_link_text 通過部分鏈結文字定位
注意: find_elements 為查詢多個元素,find_element為查詢單元素
find_element_by_name #結果為第乙個元素
find_elements_by_name #為多個同名元素
例:
type
="text"
name
="user-name"
id="passwd-id"
/>
# 通過tag name定位:
driver.find_element_by_tag_name(
"input"
)# 通過id定位:
driver.find_element_by_id(
"passwd-id"
)# 通過name定位:
driver.find_element_by_name(
"user-name"
)# 通過class name定位:
driver.find_element_by_class_name(
"class_name"
)# 通過xpath定位:
driver.find_element_by_xpath(
"//input[@id='passwd-id']"
)# 通過css定位:
driver.find_element_by_css_selector(
"#passwd-id"
)
爬蟲的話,還要獲取網頁中的資料。很簡單:
data = driver.find_element_by_id(
"passwd-id"
).text
訪問元素內屬性get_attribute()link = driver.find_element_by_link_text(
'text'
).get_attribute(
"href"
)
其他爬蟲常用的方法和屬性:
driver.page_source #獲取網頁原始碼
driver.title #頁面標題
driver.find_element_by_id(
"passwd-id"
).text #獲取元素的文字
關於定位,還有兩個私有方法:
from selenium.webdriver.common.by import by
driver.find_element(by.xpath,
'//input[@id='passwd-
id']'
)driver.find_elements(by.xpath,
'//input[@id='passwd-
id']'
)
selenium 定位元素
selenium提供了以下方法來定位元素 定位多個元素時,使用以下方法 這些方法將會返回乙個列表值 舉個簡單的例子 from selenium.webdriver.common.by import by driver.find element by.xpath,button text some te...
6 2 Selenium定位元素
在使用selenium時,往往需要先通過定位器找到響應的元素,然後再進行其他操作。selenium webdriver提供多種定位策略,如id定位 name定位 class定位 tag name定位 link text定位 xpath定位和css定位等。下面將分別介紹這些定位策略。kw name w...
selenium學習筆記 定位元素
我們在對頁面中元素進行定位之前,要先對瀏覽器進行操作 1 public class searchtest 19 其中,第五步的定位元素有八種方式 classname 通過元素的class定位,findelement 方法表示查詢元素,by.classname 表示通過類名來定位介面上的輸入框,sen...