首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

python 怎么提取<td>中的数据

2013-02-06 
python 如何提取td中的数据我现在有个表格,需要提出表中的td中的数据,td中的数据格式比较多样化,比

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处理,但是处理到中文的时候都会出问题,请教如何解决
[解决办法]

引用:
可是中文字符都变成了 \xbe\x23\x20\x9a..... 这种形式了

根据需要对字符串进行解码

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

[解决办法]
中文不管编码,print出来都对的
>>> 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用户使用
>>> 

热点排行