beautifulsoup 返回包含 <br> 标签的数据为 None
我有一个这样的表格数据:
<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> California </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">
</td>
</tr></tbody>
</table>
我正在使用beautifulsoup来解析这个表格,但现在在获取最后四个<td>
的数据时遇到了问题。每当我使用.string
属性读取它们的值时,得到的结果都是None
。我猜这可能是因为这些单元格里有<br>
标签。我想要获取最后四个<td>
的数据,分别是地址、电话号码、电子邮件和传真。那我应该用什么来替代.string
,才能获取到这些数据呢?
2 个回答
0
一旦你拿到了 td
元素的引用,你就可以使用:
td.findAll(text=True)
来获取 td
标签里面的文本子元素列表。然后你可以用 join
把这个列表用 ,
连接起来。
4
你可以使用 .text
来获取文本内容。
补充:
另外一个选择是使用 .contents
获取每个元素,然后根据需要把它们连接起来。