2016-09-25 16 views
1

データフォーマットを使用して、spanタグ内の値を取得する方法:美しいスープ3

<tr><td>Modu</td><td><span class="comments">90</span></td></tr> 
<tr><td>Kenzie</td><td><span class="comments">88</span></td></tr> 

私は90、そして88というように取得したいです。 私が試した方法:

#2.7 version python 
#link I used as input: http://python-data.dr-chuck.net/comments_283660.html 
import urllib 
from BeautifulSoup import * 
url = raw_input('Enter - ') 
html = urllib.urlopen(url).read() 
soup = BeautifulSoup(html) 
r=0; 
t=0 
tags = soup('span') 
for tag in tags: 
    #print tag.get('class', None) 
    #print tag.get('class="comments">', None) 
    print 'Contents:',tag.contents 

出力は次のとおりです。

Contents: [u'100'] 
Contents: [u'100'] 
Contents: [u'97'] 
Contents: [u'95'] 
.... 

どのように "U" は避けるようにとだけ100,100,97,95を取得...

答えて

1

することはできインデックス内容リストprint 'Contents:',tag.contents[0]以上でテキストを引き出すだけです。

tags = soup('span') 
for tag in tags: 
    print('Contents:',tag.text) 
uはちょうどあなたが ユニコード文字列を持っていることを意味し

('Contents:', u'100') 
('Contents:', u'100') 
('Contents:', u'97') 
('Contents:', u'95') 
('Contents:', u'95') 
('Contents:', u'94') 
('Contents:', u'93') 
('Contents:', u'92') 
('Contents:', u'84') 
('Contents:', u'78') 
('Contents:', u'78') 
('Contents:', u'76') 
('Contents:', u'69') 
('Contents:', u'64') 
('Contents:', u'60') 
('Contents:', u'58') 
('Contents:', u'53') 
('Contents:', u'51') 
('Contents:', u'49') 
('Contents:', u'49') 
('Contents:', u'45') 
('Contents:', u'45') 
('Contents:', u'45') 
('Contents:', u'44') 
('Contents:', u'39') 
('Contents:', u'38') 
('Contents:', u'37') 
('Contents:', u'35') 
('Contents:', u'34') 
('Contents:', u'33') 
('Contents:', u'32') 
('Contents:', u'32') 
('Contents:', u'30') 
('Contents:', u'29') 
('Contents:', u'28') 
('Contents:', u'27') 
('Contents:', u'21') 
('Contents:', u'19') 
('Contents:', u'16') 
('Contents:', u'16') 
('Contents:', u'15') 
('Contents:', u'13') 
('Contents:', u'13') 
('Contents:', u'12') 
('Contents:', u'11') 
('Contents:', u'9') 
('Contents:', u'6') 
('Contents:', u'2') 
('Contents:', u'1') 
('Contents:', u'1') 

あなたが本当にそれを削除したい場合は、あなたがstr(tag.text))を呼び出すことができたり、整数をしたい場合は、呼び出す必要があります:あなたのリンクを使用して、あなたを与えるだろう

int(tag.text))。また、bs4にアップグレードすることをお勧めします。