19.3. htmllib — HTML 文档的解析器

从 2.6 版开始不推荐使用:Python 3 中删除了htmllib模块。在 Python 2 中使用了HTMLParser,在 Python 3 中等效了html.parser

该模块定义了一个类,该类可以用作解析以超文本标记语言(HTML)格式化的文本文件的基础。该类与 I/O 没有直接关系,它必须pass方法以字符串形式提供 Importing,并调用“格式器”对象的方法以产生输出。 HTMLParser类旨在用作其他类的 Base Class,以添加Function,并允许其大多数方法被扩展或覆盖。反过来,此类也从模块sgmllib中定义的SGMLParser类派生并扩展。 HTMLParser实现支持 RFC 1866中描述的 HTML 2.0 语言。 formatter模块中提供了格式化程序对象的两种实现。有关格式化程序接口的信息,请参阅该模块的文档。

以下是sgmllib.SGMLParser定义的接口的摘要:

例如,要解析文件的全部内容,请使用:

parser.feed(open('myfile.html').read())
parser.close()

该模块定义了一个解析器类和一个异常:

2.4 版的新Function。

See also

  • Module formatter

  • 接口定义,用于将格式化事件的抽象流转换为写入器对象上的特定输出事件。

  • Module HTMLParser

  • 备用 HTML 解析器,它提供 Importing 的较低层视图,但旨在与 XHTML 一起使用,并且未实现一些“在部署的 HTML 中不使用的” SGML 语法,并且对于 XHTML 而言是不合法的。

  • Module htmlentitydefs

  • XHTML 1.0 实体的替换文本的定义。

  • Module sgmllib

  • HTMLParser的 Base Class。

19.3.1. HTMLParser 对象

除了标记方法外,HTMLParser类还提供了一些其他方法和实例变量以供在标记方法中使用。

19.4. htmlentitydefs — HTML 通用实体的定义

Note

htmlentitydefs模块在 Python 3 中已重命名为html.entities2to3工具在将源转换为 Python 3 时将自动适应导入。

源代码: Lib/htmlentitydefs.py


该模块定义了三个字典name2codepointcodepoint2nameentitydefshtmllib模块使用entitydefs来提供HTMLParser类的entitydefs属性。此处提供的定义包含 XHTML 1.0 定义的所有实体,可以使用 Latin-1 字符集(ISO-8859-1)中的简单文本替换来处理这些实体。

2.3 版的新Function。

2.3 版的新Function。

首页