05_lxml模块介绍/通过XPath从html和xml中提取数据/二手房爬虫练习

1、lxml模块、xml文档、XPath介绍:

  • 一、什么是lxml模块

    • lxml是python语言中用于处理xml和html的功能最丰富最完善最简单的模块。
    • 它利用XPath就可以实现从xml或者html中解析数据。
    • lxml模块安装指令:pip install lxml
  • 二、什么是xml?

    • xml指可拓展标记语言,xml是一种很像html的标记语言
    • 但是xml和html完全属于两个领域的内容。
    • html用于从网页显示数据,xml用于在网络中传输和存储数据。
  • 三、什么是XPath?

    • XPath是一门在XML和HTMl文档中查找信息的语言。XPath使用路径表达式
    • 在xml和html文档中进行导航。XPath使用的路径表达式和我们常用的
    • 相对路径、绝对路径很相似。
    • 注意在XPath中还有谓语,谓语其实就是更细节的筛选条件,XPath路径就是一层一层筛选,而谓语就是在层内进行细化的筛选(常用的谓语有:[N]、[position]、[@属性名]、[@属性名=属性值])
    • 所以XPath就类似于CSS中的选择器,用来定位网页内容的
    • 可以借助“|”,添加多个XPath
  • 四、XPath的语法结构

    • XPath必须要理解的概念:树、节点、根节点、元素节点、属性节点
    • 注释节点、文本节点。
    • 1.树:指整个html或者XML。
    • 2.节点:树结构中的每个部分(标签、文本、属性、注释等)就是一个节点。
    • 3.根节点:树结构中第一个节点(最外层的标签)就是根节点
    • 4.元素节点:一个标签整体就是一个元素节点,例如:沃尔玛
    • 5.属性节点:标签内的一个属性就是一个属性节点,例如:age=“20”
    • 6.注释节点:一个注释就是一个注释节点
    • 7.文本节点:标签内的文字就是一个文本节点
  • 总结:

    • 1、在python的lxml模块的etree库中,可以通过etree.XML就可以将从xml文件中读到的结果转为element对象,得到根节点
    • 2、得到的element对象,就可以通过xpath方法导航提取数据
    • 3、xpath的路径写法一般是写相对路径,是哪个节点对象调用在调用xpath方法,这个节点就要写成点,节点和节点之间是通过(/)间隔,如果需要跨节点,就要用(//)
    • 4、如何获取节点中的信息:在路径表达式最后添加 /text(),可以得到节点中的文本节点。添加 /@属性名,可以得到其对应的属性值。
    • 具体可以看下面的例子

2、以解析xml文件为例,简单说明lxml模块:

  • 首先在对应代码文件夹中新建一个xml文档:
    在这里插入图片描述

  • xml数据文件:

<supermarket>
		<!--  这是一条平平无奇的注释  -->
    <name>沃尔玛</name>
    <address>中国四川成都</address>
    <staffs>
        <name age="20" sex="">张三</name>
        <name age="30" sex="">李四</name>
        <name age="23" gender="">王五

猜你喜欢

转载自blog.csdn.net/sz1125218970/article/details/131153801