爬虫基础知识(肆)

一、XML:

  1、定义:可扩展标记语言(Extensible Markup Language)。

  2、特定:xml是具有自描述特性的半结构化数据。

  3、作用:xml主要用于传输数据。

二、xml和html的区别:

  1、语法要求不同:xml的语法要求更为严格。

    (1)、在html中不区分大小写,但是在xml中严格区分。

    (2)、在html中,有时不严格,如果上下文清楚地显示出段落或者列表键在何处结尾,那么是可以省略</p>或者</li>标记。在xml中,是严格的树状结构,绝对不能省略任何标记。

    (3)、在xml中,拥有单个标记而没有匹配的结束标记的元素必须用一个"/"字符作为结尾。例:<a href="www"/>

    (4)、在xml中,属性值必须分装在引号中。在HTML中,引号可用可不用。

    (5)、在html中属性名可以不带属性值,xml必须带有属性值。

    (6)、XML文档中,空白部分不会被解析器自动删除,但是HTML是过滤掉空格的。

  2、标记不同:

    (1)、HTML使用固有的标记,xml没有固有标记。

    (2)、HTML标签是预定义的,xml标签是自定义、可扩展的。

  3、作用不同:

    (1)、HTML的设计宗旨是用来显示数据。

    (2)、xml是用来传输数据的。

三、xpath(语法):

  1、什么是xpath:

    xpath就是用来筛选HTML或者xml中元素语法。

    xpath方法返回的都是列表,在查元素和标签的时候列表中的元素都是element对象,查属性和元素的时候,列表中的元素都是字符串。

  2、xml和HTML中一些名字:

    元素:即标签

    标签

    属性

    内容

  3、xpath的语法:

    (1)、选取节点:

      .   ---------   当前节点

      ..  ---------   父节点

      /   ---------   从根节点开始

      //  ---------   从文档任意位置

      nodename ----   选取标签或元素

      @属性名  ----   选取属性名所对应的属性值

      text()   ----   选取内容

    (2)、谓语:

      a、可以通过位置限定:

        [数字] 选取第几个   ---   例://ul/li[1]

        [last()]选取最后一个 ---  例://body/div[last()]

        [last()-1]选取倒数第二个  -  例://ul/li[last()-1]

        [position()>1]选取位置大于1 - 例://dl/dd[position()>1]

      b、通过属性限定:

        [@class="属性值"]选取class属性等于属性值的     例://div[@class="container"]

        [contains(@href,"baidu")]选取属性名为href的属性值包含baidu的标签   例://a[contains(@href,".cn")]

      c、通过子标签的内容来限定:

        //book[price>35]选取book标签的price子标签的内容大于35的book标签。

    (3)、通配符:*

      @*   ------   任意属性

      *    ------   任意节点

四、lxml模块:

  lxml模块是python用来解析xml和HTML的第三方模块,用这个模块就可以使用xpath语法。需要通过pip安装。

猜你喜欢

转载自www.cnblogs.com/lavender1221/p/12308571.html