XPath 用法总结

XPath 用法总结_第1张图片
u=1022646614,1081030420&fm=26&gp=0.jpg

xpath常用方法

# 从任意位置选择节点
xpath('//')

 # a下的文本
xpath('//a/text()') 

# a下所有的文本
xpath('//a//text()')  

# 当前路径
xpath('.')   

# @符号`
xpath('a/@href') 
xpath('div[@class='a']') 

# `text()`
xpath('a[text()='下一页']') 
#上一级
xpath('..')  
xpath('//a[1]') 
xpath('//a[last()]') 
xpath('//a[postion()<4]') 
xpath('//a[1]|//a[5]') 
xpath('a[contains(text(),"下一页")]')

常用定位元素的方法

# 通过id定位元素的方法是一样的。' //* '代表所有标签
xpath('//*[@id='kw']')

# 通过name定位元素的方法是一样的。
xpath('//*[@name='wd']')

#  //input  代表匹配所有input标签,
#  后边再加上[@class='s_ipt']代表class属性是s_ipt的input标签。
xpath('//input[@class='s_ipt']')

#  / 是绝对定位,从最上面的一个标签开始,
# 存在相同的标签可以加上[1]、[2]、[3]等。
xpath('/html/body/form/span/input')

# 先定位class='soutu-btn'的span标签,然后再找其下的input标签。
xpath('//span[@class='soutu-btn']/input')

# 先定位id='form'的form标签,然后再找其下的/span/input标签。
xpath('//form[@id='form']/span/input')

# 找出id='kw'并且name='wd'的input标签。
# 这种可以方便找出那些没有id和name的标签,
# 毕竟如果有id或者name的
# 话就用id定位元素或者name定位元素了。
xpath('//input[@id='kw' and @name='wd']')

# 选取属于 bookstore 子元素的第一个 book 元素。
xpath('/bookstore/book[1]')

# 选取属于 bookstore 子元素的最后一个 book 元素。
xpath('/bookstore/book[last()]')

#  选取属于 bookstore 子元素的倒数第二个 book 元素。
xpath('/bookstore/book[last()-1]')

#  选取最前面的两个属于 bookstore 元素的子元素的 book 元素。
xpath('/bookstore/book[position()<3]')

# 选取所有拥有名为 lang 的属性的 title 元素。
xpath('//title[@lang]')

# 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。
xpath('//title[@lang=’eng’]')

# 选取 bookstore 元素的所有 book 元素,
# 且其中的 price 元素的值须大于 35.00
xpath('/bookstore/book[price>35.00]')

# 选取 bookstore 元素中的 book 元素的所有 title 元素
# 且其中的 price 元素的值须大于 35.00。
xpath('/bookstore/book[price>35.00]/title')



一些常用函数

# 1、 starts-with函数   获取以xxx开头的元素
xpath('//div[stars-with(@class,”test”)]')


# 2、contains函数   获取包含xxx的元素
xpath('//div[contains(@id,”test”)]')

# 3、and   与的关系
xpath('//div[contains(@id,”test”) and contains(@id,”title”)]')

# 4、 text()函数
xpath('//div[contains(text(),”test”)]')
xpath('//div[@id=”“test]/text()')



你可能感兴趣的:(XPath 用法总结)