lxml库的使用

一、基本介绍

  • 1、lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据。
  • 2、lxml和正则一样,也是用 C 实现的,是一款高性能的 Python HTML/XML 解析器,我们可以利用之前学习的XPath语法,来快速的定位特定元素以及节点信息。lxml python官方文档:
  • 3、安装库

    pip3 install lxml
    

二、基本使用

  • 1、直接解析HTML代码,并且在解析HTML代码的时候,如果HTML代码不规范,他会自动的进行补全代码

    from lxml import etree
    
    text = '''
    <div>
        <ul>
            <li class="item-0"><a href="link1.html">第一个item</a></li>
            <li class="item-1"><a href="link2.html">第二个item</a></li>
            <li class="item-inactive"><a href="link3.html">第三个item</a></li>
            <li class="item-1"><a href="link4.html">第四个item</a></li>
            <li class="item-0"><a href="link5.html">第五个item</a> # 注意,此处缺少一个 </li> 闭合标签
        </ul>
    </div>
    '''
    
    html = etree.HTML(text)
    print(type(html)) # 数据类型 <class 'lxml.etree._Element'>
    result = etree.tostring(html, encoding="utf8")  # 使用utf8编码转换
    print(result.decode("utf8"))
    
  • 2、使用tostring()方法即输出修正后的HTML代码

三、读取本地文件

  • 1、直接使用etree.parse(文件路径)

    from lxml import etree
    
    html = etree.parse('./demo.html')
    result = etree.tostring(html,  encoding='utf8')
    print(result.decode('utf8'))
    

四、指定解析器

  • 1、当代码不规范的时候就需要指定解析器

    from lxml import etree
    
    parser = etree.HTMLParser(encoding='utf8')
    html = etree.parse('./demo.html', parser=parser)
    result = etree.tostring(html, encoding='utf8')
    print(result.decode('utf8'))
    

results matching ""

    No results matching ""