zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    C#多线程学习笔记(三)——线程池
    html解析工具
    怎么样获取手机的主题
    我改进的《豆瓣搜》前后对比及源代码
    【收藏】Silverlight Style (二) 自定义样式在后台代码中应用
    C#多线程学习笔记(一)
    学习Linux——学习正确的思考方式(转)
    电信禁路由上网的破解方法
    印度软件业
    中国与印度软件工程师之比较
  • 原文地址:https://www.cnblogs.com/think-in-java/p/4638331.html
Copyright © 2011-2022 走看看