
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()')
网友评论