from lxml import etree
#将hello.html文件解析出来。
#hello.html标签必须一一对应。
html_xml=etree.parse("hello.html")
print(html_xml)
print(type(html_xml))
#将html_xml转化成字符串。
#html_str=etree.tostring(html_xml,encoding='utf-8',
pretty_print=True).decode("utf-8")
print(html_str)
#1 获取所有的li标签
#//全局查找所有的li标签。
result=html_xml.xpath("//li")
#获取到五个li标签,放在一个列表中,
print(result)
#列表中的标签是xml对象,还可以使用xpath
print(type(result))
print(len(result))
print(type(result[0]))
#2 获取Li标签中的class属性信息。
#@表示选取属性 /表示从根节点获取
#返回的是列表,里面是字符串
result2=html_xml.xpath("//li/@class")
print(result2)
#3 获取li 标签下href为link1.html的a标签
#a[@href=‘link1.html’]修饰a标签
result3=html_xml.xpath("//li/a[@href='link1.html']")
print(result3)
#4 获取li 标签下href为link1.html的a标签的文本信息
result4=html_xml.xpath("//li/a[@href='link1.html']/text()")
print(result4)
#5 获取所有Li 标签下的所有span标签
result5=html_xml.xpath("//li//span")
print(result5)
#6 获取所有li标签下的a标签里面或下面class
#返回的是一个列表
result6=html_xml.xpath("//li/a//@class")
print(result6)
#获取最后一个li标签下面的a标签的href
result7=html_xml.xpath("//li[last()]/a/@href")
print(result7)
#8 获取倒数第二个Li标签的a标签的href
result8=html_xml.xpath("//li[last()-1]/a/@href")
print(result8)
#获取所有属性class为bold的标签名
#*表示所有的标签
result9=html_xml.xpath("//*[@class='bold']")
print(result9)