XPATH使用总结

最近公司里需要写一些爬虫项目,所以去接触学习了xpath的内容。在w3c上给出了xpath的语法,但是我感觉不全,而且讲得也不详细,我又去网上找了一些文章,总结一下。

这几个都是比较常用的,能解决基本近乎所有的选择。我要说的就是从/或者//开始的路径是绝对路径,从.或者..开始的路径是相对路径。直接写出nodename,属于绝对定位。

接下来说点比较特殊的定位方法。

//div[div='请按“回车”键发起检索']

表示选取所有包含子元素div的text域='请按“回车”键发起检索'的div元素,呵呵是不是看着有点绕口,那看一个简单一点的。

//div[span]

表示选取包含子元素span的div元素,再回头看上面的应该明白的了把。

//div[contains(@id,'王尼玛')]

表示属性id字段中含有'王尼玛'这三个字样的div元素,这里的属性还有很多,class,value,只要是xml里面出现的都可以使用。

//div[@id='王尼玛']

表示属性id='王尼玛'的div元素。

//div[contain(text(),"草泥马")]   

//div[text()="草泥马")]   

//*[@class="cc aaa"]     

*号表示通配

略。

../.././*/div[contains(@class,'草泥马')]/div[@class='王尼玛']

匹配当前元素的父亲节点的父亲节点的当前节点下的任意元素节点下的class包含'草泥马'的div节点下的class='王尼玛'的div节点。

另外在w3c上给出了轴的使用,我这里觉得不是很好用,比较麻烦,有兴趣的同学可以去研究一下。

xptah 还可以使用 |选取多个

选择所有title 以及artist 元素
//title | //artist
选择所有title 以及artist 以及price 元素
//title | //artist | //price

原文地址:https://www.cnblogs.com/think-in-java/p/4638331.html