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::*")

相关文章

vue阻止冒泡事件 阻止点击事件的执行 &lt;div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些