BeautifulSoup возвращает данные как None, включающие тег <br> - PullRequest
5 голосов
/ 01 февраля 2012

У меня есть такие данные таблицы:

<table class="tablesorter" id="dea">
<thead>
<tr>
<th class="header ">Name</th>
<th class="header">City</th>
<th class="">Address</th>
<th class="">Phone Nos</th>
<th class="">Email</th>
<th class="">Fax</th>
</tr>
</thead>
<tbody>

<tr class="info">
<td style="font:bold 12px Tahoma; color:#1f2c48;">Audi California</td>
<td>&nbsp;California&nbsp;</td>
<td align="left">
A?85, bay Area, Phase 1, <br>
California<br>
California
- 6554655
</td>
<td align="right">
<br>4747744747<br>108388383
</td>
<td align="center">
info<!-- >@_ -->@<!-- >@_ -->audiCal<!-- >@_ -->.<!-- >@_ -->net
</td>
<td align="right">
&nbsp;
</td>
</tr></tbody>
</table>

Я использую Beautifulsoup для анализа этого, но теперь у меня возникла проблема при получении данных за последние четыре <td>.Всякий раз, когда я читаю их значения, используя свойство .string, я получаю None в качестве значения.Я думаю, это потому, что у них есть <br> теги.Мне нужны последние четыре <td> данных с адресом, номером телефона, email_id и факсом.Вместо .string что я должен использовать, чтобы получить все эти данные?

Ответы [ 2 ]

4 голосов
/ 01 февраля 2012

Вы можете использовать .text для получения текста.

Edit:

Другим вариантом может быть получение каждого элемента с использованием .contents и присоединение к ним по мере необходимости.

0 голосов
/ 06 февраля 2012

Если у вас есть дескриптор элемента td, вы можете использовать:

 td.findAll(text=True) 

, чтобы получить список текстовых подэлементов тега td. Тогда вы можете join этот список на ,

...