我有以下Parser:
class Parser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.tableCount = 0
def handle_starttag(self, tag, attrs):
if tag == "table":
for attr in attrs:
if attr[0] == "class" and attr[1] == "space":
## need to do some processing here
取代评论,我需要做的是在此之后逐步执行所有HTML实体,直到table
标记结束(此代码仅在tag == table
时运行,如上所示。
我该怎么做?我看不到任何方法来逐步浏览此标记下的所有标记。请注意我不能使用任何外部库,如BeautifulSoup(只是Python标准库)。
答案 0 :(得分:0)
class Parser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.inTable = False
def handle_starttag(self, tag, attrs):
if tag == "table" and ('class','space') in attrs:
self.inTable = True
if self.inTable:
doSomething()
def handle_endtag(self, tag):
if tag == "table":
self.inTable = False
我猜xml.etree.ElementTree
在这种情况下可能更容易使用。