四、xpath –在 lxml中使用xpath语法
在 lxml 中使用 XPath 语法:
1、获取所有li标签:
2、获取所有li元素下的所有class属性的值:
3、获取li标签下href为www.baidu.com的a标签:
4、获取li标签下所有span标签:
5、获取li标签下的a标签里的所有class:
6、获取最后一个li的a的href属性对应的值:
7、获取倒数第二个li元素的内容:
8、获取倒数第二个li元素的内容的第二种方式:
Html 文件代码:
<!DOCTYPE html>
<html lang ="en">
<head>
<title>Title</title>
</head>
<body>
<div>
<ul>
<li class = "item-0"><a href = "link1.html">frist item</a></li>
<li class = "item-1"><a href = "link2.html">second item</a></li>
<li class = "item-inactive"><a href = "link3.html"><span class = "bold">third item</span></a></li>
<li class = "item-1"><a href = "link4.html">fourth item</a></li>
<li class = "item-0"><a href = "link5.html">fifth item</a></li>
</ul>
</div>
</body>
</html>
语法练习代码:
from lxml import etree
html = etree.parse('hello.html')
# 1、获取所有li标签:
result = html.xpath('//li')
print(result)
fori in result:
print(etree.tostring(i))
# 2、获取所有li元素下的所有class属性的值:
result = html.xpath('//li/@class')
print(result)
# 3、获取li标签下href为www.baidu.com的a标签:
result = html.xpath('//li/a[@href = "www.baidu.com"]')
print(result)
# 4、获取li标签下所有span标签:
result = html.xpath('//li//span')
print(result)
fori in result:
print(etree.tostring(i))
# 5、获取li标签下的a标签里的所有class:
result = html.xpath('//li/a//@class')
print(result)
# 6、获取最后一个li的a的href属性对应的值:
result = html.xpath('//li[last()]/a/@href')
print(result)
# 7、获取倒数第二个li元素的内容:
result = html.xpath('//li[last()-1]/a')
print(result)
print(result[0].text) # 获取内容
# 8、获取倒数第二个li元素的内容的第二种方式:
result = html.xpath('//li[last()-1]/a/text()')
print(result)
上一篇文章 第三章 数据解析(三) 2019-12-13 地址:
https://www.jianshu.com/p/a5195487e51f
下一篇文章 第三章 数据解析(五) 2019-12-15 地址:
https://www.jianshu.com/p/dda1a316a8ae
以上资料内容来源网络,仅供学习交流,侵删请私信我,谢谢。