Python3 html解析类html.parser.HTMLParser

HTMLParser类是解析HTML(超文本标记语言)和XHTML格式文本文件的基础。向HTMLParser输入HTML数据时,当遇到开始标签、结束标签、文本、注释或其他标签元素时会调用处理方法。可以继承HTMLParser并覆盖它的方法来实现所需的行为。HTMLParser不会检查结束标记与开始标记是否匹配,在关闭外部元素时也不会隐式的调用标签结束处理方法。

初始化

HTMLParser(*, convert_charrefs=True)

convert_charrefs:Python3.4新增的参数,Python3.5起默认值为true。如果为true,除脚本/样式元素之外所有字符引用都会自动转换为相应的Unicode字符。

函数

feed(data):向解析器提供数据。只要它包含完整的元素,它就被处理;不完整的数据将被缓冲,直到提供更多数据或者调用close方法。data必须是字符串。

close():强制处理所有缓冲数据,就好像它后面跟着一个文件结束标记。此函数可由派生类覆盖以便在输入结束时做更多操作,但是覆盖的方法中应该总是调用HTMLParser的close方法。

reset():重置实例,丢失所有未处理数据。在初始化时隐式调用。

get_starttag_text():返回最近打开的开始标记的文本。在结构化处理时通常不需要此方法。

getpos():返回包含当前行和位置偏移的元组。

可覆盖函数

HTMLParser实际上相当于是一个HTML解析的框架,必须要覆盖它的一些函数来处理标记。

handle_startendtag(tag, attrs):在遇到XHTML格式空标记时调用此函数,默认实现只是简单的依次调用handle_starttag和handle_endtag函数,此函数是唯一有默认实现的可覆盖函数。

handle_starttag(tag, attrs):处理开始标记。tag是转换为小写的标记名。attrs是标签尖括号(<>)内的属性的名值对元组的列表。属性名会转换为小写,值中的字符和实体引用会被替换。

handle_endtag(self, tag):处理结束标记。tag是转换为小写的标记名。

handle_charref(name):此函数用于处理十进制(&#NNN;)和十六进制(&#xNNN;)数字字符引用。如果convert_charref为true,则永远不会调用此方法。

handle_entityref(name):此函数用于处理命名实体引用(&name;)。name为通用实体引用。

handle_data(data):此函数用于处理任意数据。

handle_comment(data):此函数用于处理注释。Internet Explorer条件注释的内容也会被此函数处理。

handle_decl(decl):此函数用于处理HTML doctype声明。

unknown_decl(data):当解析器无法识别声明时会调用此函数。data参数为声明标记内的全部内容。

handle_pi(data):此函数用于处理处理指令。data包含整个处理指令。HTMLParser类使用SGML语法规则来处理指令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值