selenium定位元素及爬蟲用途簡介

2021-10-12 06:57:57 字數 2349 閱讀 6234

關於安裝和配置的部份,請看:

使用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...