一 子节点
1 点睛
我们通过/或//即可查找元素的子节点或子孙节点。
2 实战1——获取子节点
2.1 代码
from lxml import etree
html = etree.parse('./test.html', etree.HTMLParser())
# 选择li节点的所有直接a子节点
# 这里通过追加/a即选择了所有li节点的所有直接a子节点。
# 因为//li用于选中所有li节点,/a用于选中li节点的所有直接子节点a,二者组合在一起即获取所有li节点的所有直接a子节点。
result = html.xpath('//li/a')
print(result)
2.2 结果
E:\WebSpider\venv\Scripts\python.exe E:/WebSpider/4_1.py
[<Element a at 0x2138f113408>, <Element a at 0x2138f113448>, <Element a at 0x2138f113488>, <Element a at 0x2138f1134c8>, <Element a at 0x2138f113508>]
3 实战2——获取子孙节点
3.1 代码
from lxml import etree
html = etree.parse('./test.html', etree.HTMLParser())
# 要获取ul节点下的所有子孙a节点
result = html.xpath('//ul//a')
print(result)