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