beautifulsoup返回数据为无,包括<br/>标签

时间:2012-02-01 06:35:50

标签: python html-parsing beautifulsoup

我有这样的表数据:

<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 个答案:

答案 0 :(得分:4)

您可以使用.text来获取文字。

编辑:

另一种选择可能是使用.contents获取每个元素并根据需要加入它们。

答案 1 :(得分:0)

获得td元素的句柄后,您可以使用:

 td.findAll(text=True) 

获取td标记的文本子元素列表。然后,您可以join列出,