0

次の形式の美しいスープでページをスクレイピングしています

<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 のバージョンに応じて、次の 2 つのオプションがあります。

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 に答える