Xpath简介
XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航,其实HTML就是一种特殊的XML,因此大家在学习XPath时需要了解基本的HTML和XML
XPath 使用路径表达式在 XML 文档中进行导航
XPath 包含一个标准函数库
XPath 是 XSLT 中的主要元素
XPath是一个 W3C 标准
Xpath语法
表达式 | 描述 |
---|---|
nodename | 选取此节点的所有子节点 |
/ | 从根节点选取 |
// | 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 |
. | 选取当前节点 |
… | 选取当前节点的父节点 |
@ | 选取属性 |
Xpath实践
data = """ <div> <ul> <li class="item-0"><a>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">fourth item</a></li> <li class="item-0"><a href="link5.html" id='kw'>fifth item</a> </ul> </div> """ from lxml import etree # 输出一个标准的HTML格式 html = etree.HTML(data) print(etree.tostring(html)) # xpath语法: 标签,标签的值,标签的属性 # 从根节点选取 # li_list = html.xpath("/html/body/div/ul/li") li_list = html.xpath("//li") print("从匹配选择的当前节点,而不考虑它们的位置") for li in li_list: print(li) print("获取标签的值采用text()函数") text_list = html.xpath("//li/a/text()") for text in text_list: print(text) print("获取标签的值(根据属性筛选)") text_list = html.xpath("//li/a[@href='link5.html']/text()") for text in text_list: print(text) print("获取标签的属性,@代表获取属性") href_list = html.xpath("//li/a/@href") for href in href_list: print(href)
————————————————
版权声明:本文为CSDN博主「lsqzedu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lsqzedu/article/details/99697735