Xpath全称XML Path Language:XML路径语言,是一门在XML文档中查找信息的语言,同样适用HTML文档.
. | 代表当前节点 |
.. | 代表上一级节点 |
/ | 表示子级,仅一层关系 |
// | 表示子(孙)级,可以是多层关系 |
@ | 选取属性 |
通配符 | |
---|---|
* | 匹配任何元素节点 |
@* | 匹配任何属性节点 |
node() | 匹配任何类型的节点 |
使用前需将HTML内容转化:使用etree.HTML(内容)
以html=etree.HTML(内容)为例.
参数html开始的节点是<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 举报,一经查实,本站将立刻删除。