0

我正在用以下格式的 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 之间的任何索引时,它工作正常。然而,当我尝试做时,nobr 标签似乎会导致问题并返回 None 值col[6].string

我在桌子上搜索

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

想法如何获取该数据?

4

1 回答 1

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())
于 2013-03-15T22:11:14.677 回答