从表行获取文本与美丽的汤

时间:2015-08-13 21:17:23

标签: python html beautifulsoup

我想用漂亮的汤从标签之间提取文字。到目前为止,我有:

def table_to_text(html):
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(html)
    trs = soup.findAll('tr')
    for tr in trs:
        print 'row '
        print tr.findAll(['td','th']).text

这给我的输出看起来像:

row 
[<td> AAA </td>, <td>Chi</td>, <td></td>, <td class="center"><span class="blue">1353</span>/<span class="red">23</span></td>]/n

我希望输出看起来像:

[ AAA , Chi, , 1353, 23]

我该怎么做?

1 个答案:

答案 0 :(得分:1)

.findAll返回一个列表,因此你需要另一个for循环:

[el.text for el in sp.find_all(['td', 'th']) if el.text]