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
: