非常教程

Python参考手册

结构化标记 | Structured Markup

htmllib

自2.6版弃用:htmllib模块已在Python 3中删除。在Python 3中使用HTMLParser,而在Python 3中使用等效的html.parser。

该模块定义了一个类,它可以作为解析超文本标记语言(HTML)格式的文本文件的基础。 该类不直接关注I / O - 它必须通过方法以字符串形式提供输入,并调用“格式化程序”对象的方法以产生输出。 HTMLParser类旨在用作其他类的基类以添加功能,并允许扩展或覆盖大部分方法。 反过来,这个类派生并扩展了在模块sgmllib中定义的SGMLParser类。 HTMLParser实现支持RFC 1866中描述的HTML 2.0语言。格式化程序模块提供了格式化程序对象的两个实现; 有关格式化程序接口的信息,请参阅该模块的文档。

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

将数据提供给实例的接口是通过feed()方法,该方法接受一个字符串参数。 这可以根据需要每次尽可能少或尽可能多的文本调用;p.feed(一); (b)与p.feed(a + b)具有相同的效果。 当数据包含完整的HTML标记结构时,将立即处理这些结构; 不完整的结构被保存在缓冲区中。 要强制处理所有未处理的数据,请调用close()方法。

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

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

  • 为HTML标记定义语义的接口非常简单:派生一个类并定义称为start_tag(),end_tag()或do_tag()的方法。 解析器会在适当的时候调用它们:当遇到<tag ...>形式的开始标签时,会调用start_tag()或do_tag(); 当遇到<tag>形式的结束标签时,调用end_tag()。 如果开始标签需要相应的结束标签,如<H1> ... </ H1>,则类应该定义start_tag()方法; 如果标签不需要结束标签,如<P>,则该类应定义do_tag()方法。

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

class htmllib.HTMLParser(formatter)

这是基本的HTML解析器类。它支持XHTML 1.0 Recommendation(https://www.w3.org/TR/xhtml1)所需的所有实体名称。它还为所有HTML 2.0和许多HTML 3.0和3.2元素定义处理程序。

exception htmllib.HTMLParseError

HTMLParser类在解析时遇到错误时引发异常。

2.4版本中的新功能。

See also

模块格式化程序接口定义,用于将格式化事件的抽象流转换为写入程序对象上的特定输出事件。 模块HTMLParser替代HTML解析器,提供了稍低级别的输入视图,但被设计为与XHTML一起工作,并且没有实现某些未在“已部署的HTML”中使用且对XHTML不合法的SGML语法。 模块htmlentitydefs定义XHTML 1.0实体的替换文本。 模块sgmllib HTMLParser的基类。

1. HTMLParser对象

除了标记方法之外,HTMLParser该类还提供了一些额外的方法和实例变量供标记方法使用。

HTMLParser.formatter

这是与解析器关联的格式化程序实例。

HTMLParser.nofill

布尔标志,当空白不应该折叠时应该为true,或者应该是false。 一般来说,只有当字符数据被视为“预先格式化”的文本时,这应该是正确的,如在<PRE>元素中。 默认值是false。 这会影响handle_data()和save_end()的操作。

HTMLParser.anchor_bgn(href, name, type)

该方法在锚点区域的开始处被调用。 参数对应于具有相同名称的<A>标签的属性。 默认实现维护文档内的超链接列表(由<A>标签的HREF属性定义)。 超链接列表可作为数据属性锚点列表。

HTMLParser.anchor_end()

此方法在锚点区域的末尾调用。 默认实现将使用索引的文本脚注标记添加到由anchor_bgn()创建的超链接列表中。

HTMLParser.handle_image(source, alt[, ismap[, align[, width[, height]]]])

调用此方法来处理图像。 默认实现只是将alt值传递给handle_data()方法。

HTMLParser.save_bgn()

开始将字符数据保存在缓冲区中,而不是将其发送到格式器对象。 通过save_end()检索存储的数据。 使用save_bgn()/ save_end()对可能不会嵌套。

HTMLParser.save_end()

结束缓冲字符数据并返回自上次调用save_bgn()以来保存的所有数据。 如果nofill标志为false,则空格将折叠为单个空格。 没有先前调用save_bgn()的情况下调用此方法将引发TypeError异常。

注意

htmlentitydefs模块已在Python 3中重命名为html.entities。当将源代码转换为Python 3时,2to3工具将自动适应导入。

源代码: Lib / htmlentitydefs.py

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

htmlentitydefs.entitydefs

将XHTML 1.0实体定义映射到ISO Latin-1中的替换文本的字典。

htmlentitydefs.name2codepoint

一个将HTML实体名称映射到Unicode代码点的字典。

2.3版本的新功能。

htmlentitydefs.codepoint2name

将Unicode代码点映射到HTML实体名称的字典。

2.3版本的新功能。

Python

Python 是一种面向对象的解释型计算机程序设计语言,由荷兰人 Guido van Rossum 于1989年发明,第一个公开发行版发行于1991年。 Python 是纯粹的自由软件, 源代码和解释器 CPython 遵循 GPL 协议。Python 语法简洁清晰,特色之一是强制用空白符( white space )作为语句缩进。

主页 https://www.python.org/
源码 https://github.com/python/cpython
版本 2.7
发布版本 2.7.13

Python目录

1.内置常量 | Built-in Constants
2.内置例外 | Built-in Exceptions
3.内置函数 | Built-in Functions
4.内置类型 | Built-in Types
5.编译器 | Compiler
6.加密 | Cryptography
7.数据压缩 | Data Compression
8.数据持久性 | Data Persistence
9.数据类型 | Data Types
10.调试和分析 | Debugging & Profiling
11.开发工具 | Development Tools
12.文件和目录访问 | File & Directory Access
13.文件格式 | File Formats
14.构架 | Frameworks
15.输入 | Importing
16.输入/输出 | Input/ouput
17.国际化 | Internationalization
18.网络 | Internet
19.网络数据 | Internet Data
20.翻译 | Interpreters
21.语言 | Language
22.记录 | Logging
23.Mac OS
24.MS Windows
25.多媒体 | Multimedia
26.联网 | Networking
27.数字与数学 | Numeric & Mathematical
28.操作系统 | Operating System
29.可选操作系统 | Optional Operating System
30.限制执行 | Restricted Execution
31.运行 | Runtime
32.SGI IRIX
33.软件包装与分销 | Software Packaging & Distribution
34.字符串 | String
35.结构化标记 | Structured Markup
36.Tk
37.Unix
38.Python 简介
39.Python pass 语句
40.Python 循环嵌套
41.Python 运算符
42.Python log10() 函数
43.Python log() 函数
44.Python floor() 函数
45.Python fabs() 函数
46.Python exp() 函数
47.Python cmp() 函数
48.Python ceil() 函数
49.Python abs() 函数
50.Python Number(数字)
51.Python pow() 函数
52.Python modf() 函数
53.Python min() 函数
54.Python max() 函数
55.Python asin() 函数
56.Python acos() 函数
57.Python uniform() 函数
58.Python shuffle() 函数
59.Python seed() 函数
60.Python random() 函数
61.Python randrange() 函数
62.Python choice() 函数
63.Python sqrt() 函数
64.Python round() 函数
65.Python radians() 函数
66.Python degrees() 函数
67.Python tan() 函数
68.Python sin() 函数
69.Python hypot() 函数
70.Python cos() 函数
71.Python atan2() 函数
72.Python atan() 函数
73.Python 元组
74.Python 列表(List)
75.Python 字符串
76.Python 字典(Dictionary)
77.Python 日期和时间
78.Python 函数
79.Python 模块
80.Python capitalize()方法
81.Python center()方法
82.Python count() 方法
83.Python expandtabs()方法
84.Python endswith()方法
85.Python encode()方法
86.Python decode()方法
87.Python find()方法
88.Python index()方法
89.Python 异常处理
90.Python isspace()方法
91.Python isnumeric()方法
92.Python islower()方法
93.Python isdigit()方法
94.Python isalpha()方法
95.Python isalnum()方法
96.Python isupper()方法
97.Python istitle()方法
98.Python min()方法
99.Python max()方法
100.Python maketrans()方法