当前位置 博文首页 > Python lxml库的简单介绍及基本使用讲解

    Python lxml库的简单介绍及基本使用讲解

    作者:pinuscembra 时间:2021-02-19 18:45

    1.lxml库介绍

    lxml是XML和HTML的解析器,其主要功能是解析和提取XML和HTML中的数据;lxml和正则一样,也是用C语言实现的,是一款高性能的python HTML、XML解析器,也可以利用XPath语法,来定位特定的元素及节点信息

    HTML是超文本标记语言,主要用于显示数据,他的焦点是数据的外观
    XML是可扩展标记语言,主要用于传输和存储数据,他的焦点是数据的内容

    2.安装lxml方法

    方法1:
    在cmd运行窗口中输入:pip install lxml

    在这里插入图片描述

    方法2:
    在Pycharm中下载
    File–Setting–Project–Project Interpreter–点击右上角的“+”—
    第1步

    在这里插入图片描述

    第2步

    在这里插入图片描述

    第3步

    在这里插入图片描述

    方法3:
    进入这个网站进行下载:https://lxml.de/index.html

    在这里插入图片描述

    3.基本使用

    我们可以利用他解析HTML代码,并且在解析HTML代码的时候,如果HTML代码不规范或者不完整,lxml解析器会自动修复或补全代码,从而提高效率

    实例1:
    解析HTML代码块

    #提取html中的数据
    from lxml import etree
    
    text = '''
    <html>
        <div class="clearfix">
        <div class="nav_com">
         <ul>
           <li class="active"><a href="/" rel="external nofollow" >推荐</a></li>
           <li class=""><a href="/nav/python" rel="external nofollow" >Python</a></li>
           <li class=""><a href="/nav/java" rel="external nofollow" >Java</a></li>
           <li class=""><a href="/nav/web" rel="external nofollow" >前端</a></li>
           <li class=""><a href="/nav/arch" rel="external nofollow" >架构</a></li>
           <li class=""><a href="/nav/db" rel="external nofollow" >数据库</a></li>
           <li class=""><a href="/nav/5g" rel="external nofollow" >5G</a></li>
           <li class=""><a href="/nav/game" rel="external nofollow" >游戏开发</a></li>
           <li class=""><a href="/nav/mobile" rel="external nofollow" >移动开发</a></li>
           <li class=""><a href="/nav/ops" rel="external nofollow" >运维</a></li>
         </ul>
        </div>
        </div>
    </html>>
    </html>>
    
    '''
    #将字符串解析为html文档
    html = etree.HTML(text)
    #print(html)
    #将字符串序列化为html
    result = etree.tostring(html).decode('utf-8')
    print(result)

    实例2:
    读取并解析html文件

    #将html文件进行解析
    from lxml import etree
    #将html文件进行读取
    html = etree.parse('data.html')
    #将html内容序列化
    result = etree.tostring(html).decode('utf-8')
    print(result)
    js
    下一篇:没有了