python 如何提取<td>中的数据
我现在有个表格,需要提出表中的<td>中的数据,<td>中的数据格式比较多样化,比如
<table>
<tr>
<td>序列号</td><td>DEIN3-39CD3-2093J3<td>
<td>日期</td><td>2013年1月22日</td>
<td>售价</td><td>392.70 元</td>
<td>说明</td><td>仅限5用户使用</td>
</tr>
</table>
现在我需要将表格中<td></td>中间的数据提出来 使用过字符串直接处理和re处理,但是处理到中文的时候都会出问题,请教如何解决
[解决办法]
lines = '''
<table>
<tr>
<td>序列号</td><td>DEIN3-39CD3-2093J3</td>
<td>日期</td><td>2013年1月22日</td>
<td>售价</td><td>392.70 元</td>
<td>说明</td><td>仅限5用户使用</td>
</tr>
</table>
'''.decode('gbk').encode('utf-8')
import re
m = re.findall(r'<td>(.*?)</td>', lines, re.I
[解决办法]
re.M)
if m:
for x in m:
print x
>>> import re
>>> s = '''<table>
<tr>
<td>序列号</td><td>DEIN3-39CD3-2093J3</td>
<td>日期</td><td>2013年1月22日</td>
<td>售价</td><td>392.70 元</td>
<td>说明</td><td>仅限5用户使用</td>
</tr>
</table>'''
>>> res = r'<td>(.*?)</td><td>(.*?)</td>'
>>> m = re.findall(res,s,re.S
[解决办法]
re.M)
>>> m
[('\xd0\xf2\xc1\xd0\xba\xc5', 'DEIN3-39CD3-2093J3'), ('\xc8\xd5\xc6\xda', '2013\xc4\xea1\xd4\xc222\xc8\xd5'), ('\xca\xdb\xbc\xdb', '392.70 \xd4\xaa'), ('\xcb\xb5\xc3\xf7', '\xbd\xf6\xcf\xde5\xd3\xc3\xbb\xa7\xca\xb9\xd3\xc3')]
>>> for line in m:
print line[0],line[1]
序列号 DEIN3-39CD3-2093J3
日期 2013年1月22日
售价 392.70 元
说明 仅限5用户使用
>>>