iT邦幫忙

2024 iThome 鐵人賽

DAY 13
0

第六章後半,介紹XPath和應用,全名為XML Path,也就是XML的路徑,他可以查詢文件中的任何屬性。XPath把HTML文件看待成樹狀階層結構,每個標籤元素視為節點,並依照標籤指令的先後層次組成結構,分為最上層的父節點,往下父節點,再來兄弟節點。

XPath分為兩種路徑

絕對路徑:以html起頭,用單一斜線分隔

/html/body/div/h1
/html/body/div/div[2]/h2

相對路徑:使用雙斜線起頭,若頁面內有兩種相同元素,必須標示完整,或找到唯一識別名,才能選到預期元素

//h1
//div[@id=‘ article1 ’]/h2

XPath取出元素屬性質:

<a> :HTML的超連結標籤
定位到超連結
//div[@id=‘ article1 ’]//a
(定位到第一篇文章的任何超連結)

get_attribute() :取得元素屬性和隱藏的文字
取出a元素的href屬性
>>> a_tag = driver.find_element_by_xpath('//div[@id='article1']//a')
>>>a_tag.get_attribute('href')
超連結網站


讀取隱藏文字需配合textContent
p = driver.find_element_by_xpath (' //p[@class='hidden']')

print(p.text)
-> ' '
print(p.get_attribute ('textContent') )
-> '隱藏文字'

第六章重點

  • 網頁本身是純文字檔,HTML 標籤用於定義網真結構、CSS 樣式表用於設定網頁外觀、JavaScript 提供網頁互動功能。
  • 使用 Selenium 操控瀏覽器之前,要先安裝 WebDriver 驅動程式以及selenium 程式庫。
  • Selenium 程式庫提供”find_element_by_OOO”函式選定網頁元素。
  • XPath 語法用「路徑」來選定標籤元素,絕對路徑總是以 '/html' 起頭:相對路徑始終用雙斜線(//)開頭。
  • 使用 XPath 指定標籤屬性的語法:”//標籤[@屬性= '值']”
  • 選定HTML元素之後,透過”元素.text"或”元素.get_attribute(' textContent ')”語法,取得該元素的純文字內容。

上一篇
Day12 網頁資訊
下一篇
Day14 字典儲存與讀寫檔案
系列文
從0開始學PYTHON30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言