BeautifulSoup没有看到nobr标签

时间:2013-03-15 22:06:07

标签: python beautifulsoup

我正在使用以下格式的beautifulsoup抓页?

<tr class="bgWhite">
<td align="center" width="50"><nobr>A</nobr></td>
<td align="center"> 0</td>
<td align="left" width="*"> 1</td>
<td align="center"> 2</td>
<td align="center"> 3</td>
<td align="center"> 4</td>
<td align="center"><nobr> 23-Apr-13 </nobr></td>
</tr>

当我调用col[5].string或以这种方式调用1-5之间的任何索引时,它运行正常。但是,当我尝试执行col[6].string

时,nobr标记似乎会导致问题并返回None值

我用

搜索表格
for r_index,row in enumerate(table.findAll('tr')):
    col = row.findAll('td') 

想法如何获取数据?

1 个答案:

答案 0 :(得分:2)

您有两种选择,具体取决于BeautifulSoup的版本:

BeautifulSoup 4,使用.stripped_strings属性查找非空的所有文本元素:

print ' '.join(col[6].stripped_strings)

在BeautifulSoup 3中,您需要搜索所有包含的文本:

print ' '.join(el.strip() for col[6].findAll(text=True) if el.strip())