2012-05-11 12 views
2

ウェブページからデータを解析しているときに、テーブルに不要なキャリッジリターンがあって問題が発生することがあります。キャリッジリターンを削除したいが、単純なstrip()は機能していない。PythonでBeautifulSoupを使用してHTMLからキャリッジリターンを取り除く

私は次のコードを持っている:

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

ストリップ機能がキャリッジリターンを削除しないのはなぜですか?

答えて

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

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

ストリップはリターンを削除していますが、ストリップは値を返します。それは何にも等しいセルを設定しません。試してくださいrowdata = rowdata + '|' + cell.strip()

+0

うわー、私は本当に馬鹿だと感じます。ありがとう、ごめんなさい、そんなに愚かな間違いだった。 – myname

+0

母はそれについて心配しないで、私はずっとずっと悪い間違いをしました。喜んで助けてください。 –

関連する問題