美丽的汤 - 如何解析表的列并将它们插入两个列表

时间:2011-09-21 21:40:15

标签: beautifulsoup

我正在尝试解析一个包含两列的表,并将每列中的文本插入两个列表中。

我需要一些想法如何去做。

from BeautifulSoup import BeautifulSoup

s = """<table><tr><td valign="top" width="25%"><b>Text1</b><a href="#">Link1</a>:</b></td><td>AAAA<a href="#">BBBB</a></td></tr>
<tr><td valign="top" width="25%"><b>Text2:</b></td><td>CCCC<a href="#">DDDD</a></td></tr>
<tr><td valign="top" width="25%"><b><a href="#">Link2</a>:</b></td><td><a href="#">EEEE</a> FFFF</td></tr></table>
<tr><td valign="top" width="25%"><b>Text3 <br> Text4:</b></td><td><a href="#">EEEE</a> FFFF</td></tr></table>"""

a = BeautifulSoup(s)

b = a.findAll('td', text=True)

left = []
right = []

for i in b:
    print i

我得到了什么:

文本1
链接1

AAAA
BBBB

我需要什么:

左= [“Text1”,“Link1”]
对= [AAAA“,”BBBB“]

1 个答案:

答案 0 :(得分:2)

先获取行,然后获取单元格:

left = []
right = []

for tr in a.findAll('tr'):
    l, r = tr.findAll('td')
    left.extend(l.findAll(text=True))
    right.extend(r.findAll(text=True))

我没有测试过这个,但很确定它应该可以工作:)

编辑:修复(希望)