zoukankan      html  css  js  c++  java
  • 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=""]准确性较高

  • 相关阅读:
    算法思想篇(5)————贪心算法
    Nginx模块开发(4)————使用subrequest访问第三方服务
    算法思想篇(4)————分治算法
    算法思想篇(3)————递归算法
    算法思想篇(2)————递推算法
    Nginx模块开发(3)————使用upstream访问第三方服务
    CentOS启用iptables防火墙
    linux-TFTP服务
    NFS服务
    linux构建DHCP服务器
  • 原文地址:https://www.cnblogs.com/ruoniao/p/6858480.html
Copyright © 2011-2022 走看看