XPath
XPath 是一种在 XML 文档中查找、定位信息的语言。
XPath 于 1999 年 11 月 16 日 成为 W3C 标准。
XPath 在线测试
https://www.toolnb.com/tools/xpath.html
/绝对路径
绝对路径从 HTML 根节点开始算
/div 从根节点上选取div节点/html/body/div 根节点 html 下的 body 下的 div
//相对路径
相对路径从任意节点开始
// 选取所有的当前节点,不考虑他们的位置
//div 选取所有的div节点
. 与 ..
.//h1 当前节点下的全部 h1 节点
//span/.. 选取所有 span 节点的父节点//input[@name="key"]/.. 选取 name等于key 的全部 input 节点的父节点
通过 .. 先找到父节点,再通过父节点找到兄弟节点://span[@class="bg"]/../div 选取 class等于bg 的全部span节点的 同级兄弟 div 节点
[谓语]
谓语被嵌在方括号内,用来查找某个特定的节点或包含某个制定的值的节点
/body/div[1] 选取body下的第一个div节点/body/div[last()] 选取body下最后一个div节点/body/div[last()-1] 选取body下倒数第二个div节点/body/div[positon()<3] 选取body下前两个div节点
@attribute='value' 匹配属性及值
[@attr] 选择所有带 attr 属性的节点/body/div[@class] 选取body下带有class属性的div节点
//*[@*] 选择所有带有属性的节点
[@attr='v'] 选择所有 attr 属性值等于 v 的节点/body/div[@class='main'] 选取body下class属性为main的div节点//*[@class='ri'] 选取所有 class 属性的值是 ri 的节点//span[@role='img'] 选取所有 role 属性值等于 img 的 span 节点//form[@id="form"]//span 选取id=form的 dorm 节点下的全部 span 节点
/body/div[price>35.00] 选取body下price元素值大于35的div节点
* 通配符
//* 选取所有节点/div/* 选取div下的所有子节点
/div[@*] 选取所有带属性的div节点
逻辑运算符 and or |
//div|//table 选取所有的div和table节点
//*[@name='wd' and @class='s_ipt'] 查找 name 属性为 wd 并且 class 属性为 s_ipt 的任意元素//*[@name='wd' or @class='s_ipt'] 查找 name 属性为 wd 或 class 属性为 s_ipt 的任意元素
contains() 包含
//div[contains(@id,"ma")] 选取 id 包含 ma 的所有 div 属性
starts-with 以开头
//div[starts-with(@id,"ma")] 选取id值以ma开头的div节点
text() 文本定位
//div[contains(text(),"ma")] 选取节点文本包含ma的div节点
上一篇 Python-pip
下一篇 Python-爬虫
页面信息
location:protocol: host: hostname: origin: pathname: href: document:referrer: navigator:platform: userAgent: