我想从这个链接得到号在“间距”标签:http://python-data.dr-chuck.net/comments_42.html从HTML标签获得数字
的数据是这样的:
<tr><td>Modu</td><td><span class="comments">90</span></td></tr>
<tr><td>Kenzie</td><td><span class="comments">88</span></td></tr>
<tr><td>Hubert</td><td><span class="comments">87</span></td></tr>
下面的代码:
import urllib
from BeautifulSoup import *
url = raw_input('Enter - ')
html = urllib.urlopen(url).read()
soup = BeautifulSoup(html)
# Retrieve all of the anchor tags
tags = soup('span')
numbers = [number.contents[0] for number in tags]
print numbers
当我打印numbers
,它显示是这样的:
[u'97', u'97', u'90', u'90', u'88', u'87', u'87', u'80', u'79', u'79', u'78', u'76', u'76', u'72', u'72', u'66', u'66', u'65', u'65', u'64', u'61', u'61', u'59', u'58', u'57', u'57', u'54', u'51', u'49', u'47', u'40', u'38', u'37', u'36', u'36', u'32', u'25', u'24', u'22', u'21', u'19', u'18', u'18', u'14', u'12', u'12', u'9', u'7', u'3', u'2']
为什么它得到那些你的?我的目标是抛弃那些没有你的字符串并获得它们的总和。
你不应该不经过编码类型编码为Unicode('STR()')。如果任何字段包含非ASCII,那么用户将得到一个巨大的UnicodeEncodeError异常 –
@AlastairMcCormack我同意你的看法,就在这种情况下,我发现输入的数字不是非ascii字符。 – ettanany