lxml 節(jié)點(diǎn)軸選擇

2021-05-28 09:55 更新

XPath提供了很多節(jié)點(diǎn)選擇方法,包括獲取子元素、兄弟元素、父元素、祖先元素等,示例如下:

from lxml import etree

text1='''
<div>
    <ul>
         <li class="aaa" name="item"><a href="link1.html">第一個(gè)</a></li>
         <li class="aaa" name="item"><a href="link1.html">第二個(gè)</a></li>
         <li class="aaa" name="item"><a href="link1.html">第三個(gè)</a></li>
         <li class="aaa" name="item"><a href="link1.html">第四個(gè)</a></li> 
     </ul>
 </div>
'''

html=etree.HTML(text1,etree.HTMLParser())
result=html.xpath('//li[1]/ancestor::*')  #獲取所有祖先節(jié)點(diǎn)
result1=html.xpath('//li[1]/ancestor::div')  #獲取div祖先節(jié)點(diǎn)
result2=html.xpath('//li[1]/attribute::*')  #獲取所有屬性值
result3=html.xpath('//li[1]/child::*')  #獲取所有直接子節(jié)點(diǎn)
result4=html.xpath('//li[1]/descendant::a')  #獲取所有子孫節(jié)點(diǎn)的a節(jié)點(diǎn)
result5=html.xpath('//li[1]/following::*')  #獲取當(dāng)前子節(jié)之后的所有節(jié)點(diǎn)
result6=html.xpath('//li[1]/following-sibling::*')  #獲取當(dāng)前節(jié)點(diǎn)的所有同級(jí)節(jié)點(diǎn)


#
[<Element html at 0x3ca6b960c8>, <Element body at 0x3ca6b96088>, <Element div at 0x3ca6b96188>, <Element ul at 0x3ca6b961c8>]
[<Element div at 0x3ca6b96188>]
['aaa', 'item']
[<Element a at 0x3ca6b96248>]
[<Element a at 0x3ca6b96248>]
[<Element li at 0x3ca6b96308>, <Element a at 0x3ca6b96348>, <Element li at 0x3ca6b96388>, <Element a at 0x3ca6b963c8>, <Element li at 0x3ca6b96408>, <Element a at 0x3ca6b96488>]
[<Element li at 0x3ca6b96308>, <Element li at 0x3ca6b96388>, <Element li at 0x3ca6b96408>]
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)