python爬虫系列(3.2-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'))

猜你喜欢

转载自blog.csdn.net/qq_40925239/article/details/83862992