xpath(待补充)

from lxml import etree
html="""
<div>
    <ul>
        <li>1</li>
        <li title="text1">2</li>
        <li>1</li>
        <li title="text2">2</li>
        <li>1</li>
        <li title="text3">2</li>
        <li>1</li>
        <li title="text3 text4">2</li>
    </ul>
</div>
"""
html=etree.HTML(html)
html1=html.xpath('//li[text()=2]')#获取值为2的html节点
# print(html1)
html2=html.xpath('//li[text()=2]')[-2]#获取倒数第二个值为2的html节点
# print(html2)
html3=html.xpath('//li[text()=2]/@title')#遍历值为2的html节点的title属性
# print(html3)#打印出一个列表
for i in html3:
    print(i)

#重点:针对多个属性,怎么取包含其中的一个值
html4=html.xpath('//li[contains(@title, "text4")]')#找出title属性包含text3的html节点
# print(html4)
html5=html.xpath('//li[1]')#找到第一个li
# print(html5)
html6=html.xpath('//li[last()]')#找到最后一个li
# print(html6)
html7=html.xpath('//li[last()-1]')#找到倒数第二个li
# print(html7)
html8=html.xpath('/html/body/div/ul/li[@title="text3"]/text()')#绝对路径找li的属性title="text2"的文本
# print(html8)


# 如果在提取某个页面的某个标签的xpath路径的话,可以如下图:
# //*[@id="kw"]
# 解释:使用相对路径查找所有的标签,属性id等于kw的标签。
原文地址:https://www.cnblogs.com/z-x-y/p/8299443.html