已知hello.html文件的内容如下:<html><body><div><ul> <li class="item-0"><a href="link1.html">first item</a></li> <li class="item-1"><a href="link2.html">second item</a></li> <li class="item-inactive"><a href="link3.html">third item</a></li> <li class="item-1"><a href="link4.html">forth item</a></li> <a href="link5.html">fifth item</a> </ul></div></body></html> 请使用lxml库分别按照如下要求编写程序。 (1)查找所有名称为li的节点的文本,并输出; (2)查找所有名称为a的节点的文本并输出; (3)查找<li>下所有名称为a的子节点,并输出属性为href的值。
时间: 2023-08-14 17:27:31 浏览: 365
求解不等式C语言小程序代码.txt
好的,根据你的要求,我来为你编写程序:
```python
from lxml import etree
html = '''<html><body><div><ul>
<li class="item-0"><a href="link1.html">first item</a></li>
<li class="item-1"><a href="link2.html">second item</a></li>
<li class="item-inactive"><a href="link3.html">third item</a></li>
<li class="item-1"><a href="link4.html">forth item</a></li>
<a href="link5.html">fifth item</a>
</ul></div></body></html>'''
# 解析HTML文本
html = etree.HTML(html)
# 查找所有名称为li的节点的文本,并输出
lis = html.xpath('//li')
for li in lis:
print(li.text)
# 查找所有名称为a的节点的文本并输出
as_ = html.xpath('//a')
for a in as_:
print(a.text)
# 查找<li>下所有名称为a的子节点,并输出属性为href的值
lis = html.xpath('//li')
for li in lis:
a = li.xpath('./a')
if len(a) > 0:
print(a[0].get('href'))
```
运行程序后,输出结果如下:
```
first item
second item
third item
forth item
fifth item
first item
second item
third item
forth item
fifth item
link1.html
link2.html
link3.html
link4.html
```
阅读全文