class LinksParser(HTMLParser.HTMLParser):
def __init__(self):
HTMLParser.HTMLParser.__init__(self)
self.recording = 0
self.data = []
def handle_starttag(self, tag, attributes):
if tag != 'div':
return
if self.recording:
self.recording += 1
return
for name, value in attributes:
if name == 'id' and value == 'remository':
break
else:
return
self.recording = 1
def handle_endtag(self, tag):
if tag == 'div' and self.recording:
self.recording -= 1
def handle_data(self, data):
if self.recording:
self.data.append(data)
self.recordingcounts the number of nested tags div, starting with the "trigger". When we are in a subtree embedded in a trigger tag, we accumulate data in self.data.
self.data ( , , , ). , .
, 'div', 'id' 'remository', self.tag, self.attname self.attvalue, __init__ - , ( , ).