向提问者 +1,向 Python 之神 +1。
想使用 lxml 和 CSS 选择器尝试这个示例。
是的,这与 Alex 的示例大体相同:
import lxml.html
markup = lxml.html.fromstring('''<html><body>\
<table width="600">
<tr>
<td width="50%">0,0,0</td>
<td width="50%">0,0,1</td>
</tr>
<tr>
<td>0,1,0</td>
<td>0,1,1</td>
</tr>
</table>
<table>
<tr>
<td>1,0,0</td>
<td>1,<blink>0,</blink>1</td>
<td>1,0,2</td>
<td><bold>1</bold>,0,3</td>
</tr>
</table>
</body></html>''')
tbl = []
rows = markup.cssselect("tr")
for row in rows:
tbl.append(list())
for td in row.cssselect("td"):
tbl[-1].append(unicode(td.text_content()))
pprint(tbl)
#[[u'0,0,0', u'0,0,1'],
# [u'0,1,0', u'0,1,1'],
# [u'1,0,0', u'1,0,1', u'1,0,2', u'1,0,3']]