使用selenium定位獲取標籤物件並提取資料

北山啦發表於2020-12-19

selenium提取資料

在這裡插入圖片描述

知識點:
  • 瞭解 driver物件的常用屬性和方法
  • 掌握 driver物件定位標籤元素獲取標籤物件的方法
  • 掌握 標籤物件提取文字和屬性值的方法

1. driver物件的常用屬性和方法

在使用selenium過程中,例項化driver物件後,driver物件有一些常用的屬性和方法

  1. driver.page_source 當前標籤頁瀏覽器渲染之後的網頁原始碼
  2. driver.current_url 當前標籤頁的url
  3. driver.close() 關閉當前標籤頁,如果只有一個標籤頁則關閉整個瀏覽器
  4. driver.quit() 關閉瀏覽器
  5. driver.forward() 頁面前進
  6. driver.back() 頁面後退
  7. driver.screen_shot(img_name) 頁面截圖

知識點:瞭解 driver物件的常用屬性和方法

2. driver物件定位標籤元素獲取標籤物件的方法

在selenium中可以通過多種方式來定位標籤,返回標籤元素物件

find_element_by_id 						(返回一個元素)
find_element(s)_by_class_name 			(根據類名獲取元素列表)
find_element(s)_by_name 				(根據標籤的name屬性值返回包含標籤物件元素的列表)
find_element(s)_by_xpath 				(返回一個包含元素的列表)
find_element(s)_by_link_text 			(根據連線文字獲取元素列表)
find_element(s)_by_partial_link_text 	(根據連結包含的文字獲取元素列表)
find_element(s)_by_tag_name 			(根據標籤名獲取元素列表)
find_element(s)_by_css_selector 		(根據css選擇器來獲取元素列表)
  • 注意:
    • find_element和find_elements的區別:
      • 多了個s就返回列表,沒有s就返回匹配到的第一個標籤物件
      • find_element匹配不到就丟擲異常,find_elements匹配不到就返回空列表
    • by_link_text和by_partial_link_tex的區別:全部文字和包含某個文字
    • 以上函式的使用方法
      • driver.find_element_by_id('id_str')

知識點:掌握 driver物件定位標籤元素獲取標籤物件的方法

3. 標籤物件提取文字內容和屬性值

find_element僅僅能夠獲取元素,不能夠直接獲取其中的資料,如果需要獲取資料需要使用以下方法

  • 對元素執行點選操作element.click()

    • 對定位到的標籤物件進行點選操作
  • 向輸入框輸入資料element.send_keys(data)

    • 對定位到的標籤物件輸入資料
  • 獲取文字element.text

    • 通過定位獲取的標籤物件的text屬性,獲取文字內容
  • 獲取屬性值element.get_attribute("屬性名")

    • 通過定位獲取的標籤物件的get_attribute函式,傳入屬性名,來獲取屬性的值

  • 程式碼實現,如下:

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    
    driver.get('http://www.itcast.cn/')
    
    ret = driver.find_elements_by_tag_name('h2')
    print(ret[0].text) # 
    
    ret = driver.find_elements_by_link_text('黑馬程式設計師')
    print(ret[0].get_attribute('href'))
    
    driver.quit()
    

相關文章