微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Xpath学习笔记

Xpath全称XML Path Language:XML路径语言,是一门在XML文档中查找信息的语言,同样适用HTML文档.

.代表当前节点
..代表上一级节点
/表示子级,仅一层关系
//表示子(孙)级,可以是多层关系
@选取属性
通配
*匹配任何元素节点
@*匹配任何属性节点
node()匹配任何类型的节点

使用前需将HTML内容转化:使用etree.HTML(内容)

以html=etree.HTML(内容)为例.

参数html开始的节点是<html>.

获取标签例:html.Xpath('/html')

父级获取子级标签例:html.Xpath('/html/body')

子级获取父级标签例:html.Xpath('/html/body/..')

通过ID检索例:html.Xpath('.//div[@id="ID名"]')(ID前加@和[])

通过class检索例:html.Xpath('.//div[@class="class名"]')(class前加@和[])

通过position定位(position返回当前标签的位置号)例:html.Xpath(".//table/tr[position()>0]"(取tr标签下除了第一个标签的后面全部)

通过last()去父级标签的最后一个子级标签例:html.Xpath(".//table/tr[last()]")

通过text()获取标签文本值例:html.Xpath('./html/head/title/text()')

轴:可定义相对于当前节点的节点集使用时加上"::"(两个冒号)
ancdstor选取当前节点的所有先辈
ancestor or self选取当前节点的所有先辈以及当前节点本身
attribute选取当前节点的所有所有属性
child选取当前节点的所有子元素
descendant选取当前节点的所有后代元素
descendant or self选取当前节点的所有后代元素以及当前节点本身
following选取文档中当前节点的结束标签之后的所有节点
namespace选取当前节点的所有命名空间节点
parent选取当前节点的父节点
preceding选取文档中当前节点的开始标签之前的所有节点
preceding-sibling

选取当前节点之前的所有同级节点

self选取当前节点

轴使用例:html.Xpath(".//table/ancestor::*")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐