Красивый суп - как разобрать столбцы таблицы и вставить их в два списка - PullRequest
0 голосов
/ 22 сентября 2011

Я пытаюсь разобрать таблицу с двумя столбцами и вставить текст из каждого столбца в два списка.

Мне нужны некоторые идеи, как это сделать.

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
:
АААА
BBBB

Что мне нужно:

left = ["Text1", "Link1"]
right = [AAAA "," BBBB "]

1 Ответ

2 голосов
/ 22 сентября 2011

Сначала получите строку, а затем получите ячейку:

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))

Я не проверял это, но уверен, что это должно работать:)

РЕДАКТИРОВАТЬ: исправлено (надеюсь)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...