xpath的基础实例

本文分为路径表达式常用函数两部分,整理自火车浏览器官方教程-火车浏览器之Xpath讲解

小提示:可以使用火狐浏览器。我用的是火狐浏览器+firebug+firepath来进行调试,调试界面是这样的:

火狐浏览器xpath调试界面

下面是具体的内容:

 路径表达式

/html/head/meta[@name="theme-color"]

上面这个表达式按照网页的绝对路径找到meta,该路径下有多个meta,所以中括号中指定了要找的是name为theme-color的meta

但是写绝对路径太繁琐,所以可以简写成相对路径如下

//meta[@name="theme-color"]

上面这条表达式,只需要在括号中写入一个独一无二的标志性name即可通过相对路径找到
一般而言,因为绝对路径容易发生变化,xpath表达式尽可能简短,尽可能使用相对路径

小结:

//后面写的是元素的名称
[]中写的是条件
[]中加了@表示属性名称,没有加@表示元素名称
@为属性名称

==========分割线==========

常用函数

and:条件与(下面两种写法都可以)

//div[@id="swfEveryCookieWrap" and @data-for="result"]
//div[@id="swfEveryCookieWrap"][@data-for="result"]

表示通过相对路径找到id为swfEveryCookieWrap并且data-for属性值为result的div


|:条件或

//div[@id="swfEveryCookieWrap"] | //div[@data-for="result"]

表示通过相对路径找到id为swfEverycookieWrap或者data-for属性值为result的div


position:正向定位

//div[@id="content_left"]/div[position()>2]

找到id为content_left下的子元素div位置>2的元素(position的值是从1开始的)

last:反向定位

//div[@id="content_left"]/div[last()]

找到id为content_left下子元素div位置为最后一个的元素

//div[@id="content_left"]/div[last()-1]

找到id为content_left下子元素div位置为最后一个前一个(也就是倒数第二个)的元素

正向定位和反向定位结合

//div[@id="content_left"]/div[position()>4 and position()<last()-1]

找到id为content_left下子元素div位置大于4并且位置小于倒数第二的元素(也就是从第五个到倒数第三个的元素)

contains:模糊查询

//div[@id="content_left"]/div[contains(@data-click,'{"rsv_bdr":"0","rsv_cd":"pt:40520')]

找到id为content_left下子元素div内的data-click属性中包含{"rsv_bdr":"0","rsv_cd":"pt:40520的所有元素

原文地址:https://www.cnblogs.com/chenyangsocool/p/7356711.html