这是 html 文件的一部分。
......
......
<tr>
<td color="white" style="color:black; bgcolor="#ffff00">Adam</th>
<td color="white" style="color:white; bgcolor="#ff9900">450231</th>
<td color="white" style="color:black; bgcolor="#cc0000">658902</th>
</tr>
.......
.......
<tr>
<td color="white" style="color:black; bgcolor="#ffff00">John</th>
<td color="white" style="color:white; bgcolor="#ff9900">8734658</th>
<td color="white" style="color:black; bgcolor="#cc0000">90865</th>
</tr>
.......
.......
如果bgcolor="#ff9900"
,我需要提取 450231 和 8734658 并将它们放入列表中
到目前为止,我已经做到了这一点..
class MyHTMLParser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.recording = 0
self.data = []
def handle_starttag(self, tag, attrs):
if tag == 'td':
for name, value in attrs:
if name == 'bgcolor' and value == '#993399':
self.recording = 1
def handle_endtag(self,tag):
if tag == 'th':
self.recording -= 1
def handle_data(self, data):
if self.recording:
self.data.append(data)
.
.
.
y = urllib2.urlopen(x) # x gets the html file
html = y.read()
parser = MyHTMLParser()
parser.feed(html)
print parser.data
parser.close()
parser.data 包含['\n', 'Adam', '\n', '450231', '\n', '658902\n', '\n', '\n', '\n'....]
什么时候应该只包含['450231', '8734658']
我不确定我哪里出错了。