Scrapy基础(三) ------xpath基础

xpath简介

  1,使用路径表达式在xml和html中解析
    2,包含标准函数路(所有库支持的xpath语法一致)
      3,W3C标准

节点:

 1 <body>                        第一个节点: <html>
 2     <a>                        <head><body>;<a><div>;<h1><h2> 为同胞节点
 3     <div>                    <h1></span> 的父节点,同理<span><h1> 的子节点
 4         <h1>                因为<span><h1> 的子节点,<h1><div>的子节点,所以<div><span>
 5             <span>            的先辈节点,同理,<span><div>的子孙节点
 6             </span>
 7         </h1>
 8         <h2>
 9         </h2>
10     </div>
11     </a>
12 </body>

基本语法:

  举例元素标签为artical标签

  一:

  artical 选取所有artical元素的子节点

        /artical 选取根元素artical
        artical/a 选取所有属于artical的子元素a元素
        //div    选取所有div 子元素,无论div在任何地方
        artical//div  选取所有属于artical的div 元素,无论div元素在artical的任何位置
        //@class 选取所有名为class 的属性的
    二:谓语    
        /artical/div[1]   选取所有属于artical 子元素的第一个div元素
        /artical/div[last()]  选取所有属于artical子元素的最后一个元素
        /artical/div[last()-1] 选取所有属于artical子元素的倒数低2个元素
        //div[@lang]   选取所有拥有属性为lang的元素
        //div[@lang="eng"] 选取所有div下lang属性为eng的元素

    三:
        /div/* 选取所有属于div元素的所有子节点
        //*    选取所有元素
        //div[@*]   选取所有带属性的title元素
        //div/a|//div/p   选取所有div元素的a和p 元素
        //span | //ul   选取文档中所有span和ul 的元素
        artical/div/pl|//span  选取所有div下的pl和文档中所有span
注意事项:
    1) 按照审查元素的写法不一定正确,要按照网页源码的才行
        因为不一样,网页源码才是你看到的
    2) 浏览器有自带的复制xpath功能,审查元素你试试,不同浏览器不同方法
    3) xpath有c的速度,所以按照[@class=""]准确性较高

posted @ 2017-05-15 21:12  若鸟  阅读(560)  评论(0编辑  收藏  举报