#导入lxml包下的etree类
from lxml import etree
#随意定义一段html代码块
s="""
<div>
<ul>
<li class="item-0"><a href="link1.html">aaa</a></li>
<li class="item-0"><a href="link2.html">bbb</a></li>
<li class="item-0"><a href="link3.html">ccc</a></li>
</ul>
</div>
"""
#将字符串转换为html网页(编号)
html=etree.HTML(s)
print(html)
print("-"*80)
#将html网页转换为字符串
#与直接输出不同,这里会加上html,body标签。
html_string=etree.tostring(html)
#输出并设置编码格式为utf-8(兼容中文)
print(html_string.decode("utf-8"))
print("-"*80)
#匹配a标签1(多个结果就用列表循环输出)
#加 / 得一层一层往下找
html_data1=html.xpath("/html/body/div/ul/li/a")
for i in html_data1:
print(i)
print(i.text) # 输出a标签的内容
print("-"*80)
#匹配a标签2
#加 // 就可以省略前面在多级
html_data2=html.xpath("//div")
for i in html_data2:
# 加 @href 就是获取a标签里href的内容
#. 暂时不知道什么意思
res = i.xpath("./ul/li/a/@href")
print(res)
# for j in res:
# print(j)
print("-"*80)
#匹配谓语(获取指定相同标签的其中一个,[]下标从1开始)
html_data3=html.xpath("//li[2]/a")
print(html_data3)
print(html_data3[0].text) #输出内容