2

Web ページからデータを解析していますが、テーブルに不要なキャリッジ リターンが含まれていることがあり、問題が発生しています。改行を削除したいのですが、単純な strip() が機能しません。

次のコードがあります。

html = """
<table>
<tr>
<td>
Commercial, financial and agricultural</td>
<td>
791
</td>
</tr>
</table>
"""

soup = BeautifulSoup(''.join(html))
table = soup.find('table')

rows = table.findAll('tr')
for tr in rows:
    rowdata = ''
    columns = tr.findAll('td')
    for td in columns:
        cell = ''.join(td.findAll(text=True))
        cell.strip()
        rowdata = rowdata+'|'+cell
    print rowdata

出力は次のとおりです。

|
Commercial, financial and agricultural|
791

出力を次のようにしたい: |商業、金融、農業|791

ストリップ関数が改行を削除しないのはなぜですか?

4

1 に答える 1

3
>>> cell = 'text\n'
>>> cell.strip()
'text'
>>> rowdata = '|' + cell
>>> print rowdata
|text

>>> rowdata = '|' + cell.strip()
>>> print rowdata
|text

Strip は戻り値を削除していますが、strip は値を返します。セルを何にも等しく設定しません。試してみてくださいrowdata = rowdata + '|' + cell.strip()

于 2012-05-11T03:10:49.240 に答える