python中,有三个库可以解析html文本,HTMLParser,sgmllib,htmllib。他们的实现方法不通,但功能差不多。这三个库中 提供解析html的类都是基类,本身并不做具体的工作。他们在发现的元件后(如标签、注释、声名等),会调用相应的函数,这些函数必须重载,因为基类中不 作处理。
比如:
"""
AdviceThe IETF admonishes:
Be strict in what you send.
"""
如果对这个数据做处理,当检测到标签时,对于HTMLParser,会调用handle_starttag函数。
下面具体介绍下几个库
1、HTMLParser
#------------------ HTMLParser_stack.py ------------------#
#-- coding: GBK --
import HTMLParser,sys,os,string
html = """
AdviceThe IETF admonishes:
Be strict in what you send.
"""
tagstack = []
class ShowStructure(HTMLParser.HTMLParser):
def handle_starttag(self, tag, attrs): tagstack.append(tag)