当前位置: 首页 > 编程笔记 >

Python中的html5lib和lxml解析器

夹谷阳夏
2023-03-14
本文向大家介绍Python中的html5lib和lxml解析器,包括了Python中的html5lib和lxml解析器的使用技巧和注意事项,需要的朋友参考一下

html5lib是用于解析HTML的纯Python库。它被设计为符合WHATWG HTML规范,所有主要的Web浏览器都实现了该规范。它可以解析HTML文档的几乎所有元素,将其分解为不同的标记和片段,可以针对各种用例将其过滤掉。它以与主要浏览器相同的方式解析文本。它还可以处理损坏的HTML标记并添加一些必要的标记以完成结构。它也是用纯python代码编写的。

lxml也是一个类似的解析器,但是由XML特性驱动,而不是由HTML驱动。它依赖于外部C库。与html5lib相比,它更快。

让我们通过一个样本标签示例观察这两个解析器在行为上的差异,并查看输出。

示例

from bs4 import BeautifulSoup
html5_structure = BeautifulSoup("<head><li></p>", "html5lib")
print(html5_structure)
lxml_structure = BeautifulSoup("<head><li></p>", "lxml")
print(lxml_structure)

运行上面的代码给我们以下结果

输出结果

<html><head></head><body><li><p></p></li></body></html>
<html><head></head><body><li></li></body></html>

如我们所见,html5lib通过合并

标签。lxml库更侧重于类似xml的结构,并且完全忽略了标记。

 类似资料:
  • 问题内容: 我试图最终解决一些编码问题,这些问题从尝试使用lxml抓取HTML弹出。这是我遇到的三个示例HTML文档: 1。 2。 3。 我的基本脚本: 结果是: 因此,显然是样本1和缺少标签的问题。这里的解决方案将正确地将示例1识别为utf-8,因此在功能上与我的原始代码等效。 lxml文档出现冲突: 从这里开始,该示例似乎建议我们应该使用UnicodeDammit将标记编码为unicode。

  • 问题内容: 使用漂亮的汤时,“ lxml”与“ html.parser”与“ html5lib”之间有什么区别?您什么时候可以使用另一种以及每种的好处?从我每次使用的时间来看,它们似乎是可互换的,但我确实得到纠正,我应该使用与此处的人员不同的方法。想加深我对这些的理解。我在这里已经阅读了几篇关于此的文章,但它们根本没有涉及太多用途。 范例- 问题答案: 从docs 的优缺点汇总表中: html.p

  • html5lib 是一个用来解析 HTML 文档的 Python 类库,支持HTML 5 以及最大程度兼容桌面浏览器。 主要特性包括: Parses valid and invalid HTML documents to a tree Support for minidom, ElementTree (including cElementTree and lxml.etree), Beautifu

  • 问题内容: 我正在尝试使用BeautifulSoup从网页中提取表格的HTML代码。 我想知道为什么下面的代码可以与一起使用,如果我更改为,则可以打印回去。 问题答案: 文档中有一个特殊的段落,称为“解析器之间的差异”,其中指出: Beautiful Soup为许多不同的解析器提供了相同的接口,但是每个解析器都是不同的。不同的解析器将从同一文档创建不同的解析树。最大的区别在于HTML解析器和XML

  • 本文向大家介绍Python lxml解析HTML并用xpath获取元素的方法,包括了Python lxml解析HTML并用xpath获取元素的方法的使用技巧和注意事项,需要的朋友参考一下 代码 使用方法见注释 以上这篇Python lxml解析HTML并用xpath获取元素的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 主要内容:安装lxml库,lxml使用流程,lxml库数据提取lxml 是 Python 的第三方解析库,完全使用 Python 语言编写,它对 Xpath 表达式提供了良好的支持,因此能够了高效地解析 HTML/XML 文档。本节讲解如何通过 lxml 库解析 HTML 文档。 安装lxml库 lxml 属于 Python 第三方库,因此需要使用如下方法安装: 在 CMD 命令行验证是否安装成功。若引入模块,不返回错误则说明安装成功。 lxml使用流程 l