Python Beautifulsoup4删除<span>标记</span>

时间:2014-04-03 19:28:07

标签: python tags beautifulsoup html

我正在使用此行从网站上抓取信息 offers = soup.find_all("span", "rcnt")
这给了我这个结果:
    [<span class="rcnt">8.668</span>]
出于某种原因,当我试图打开它时,它给了我这个     [<span class="rcnt"></span>]
而不是8.668

如何正确编码

3 个答案:

答案 0 :(得分:1)

使用.string.renderContents()获取值。

htmls = '<span class="rcnt">8.668</span>'
soup = BeautifulSoup(htmls)
offers =  soup.find_all("span", "rcnt")

print offers[0].string           ## this one is better
print offers[0].renderContents()

答案 1 :(得分:0)

从您的描述中不清楚您使用什么代码来获取(解包)内容。这是你做的。

offers是一个列表。要获取span元素中的内容:

elements = [tag.text for tag in offers]

elements将包含HTML中所有span标记的内容。

>>> html = '<span class="rcnt">8.668</span><span class="rcnt">5.7868</span>'
>>> soup = BeautifulSoup(html)
>>> offers =  soup.find_all("span", "rcnt")
>>> elements = [tag.text for tag in offers]
>>> elements
[u'8.668', u'5.7868']

答案 2 :(得分:0)

只需使用.string()来检索任何html标记内的值。

html = '<span class="rcnt">8.668</span>'
soup = BeautifulSoup(html)
offers = soup.('span',attrs={"class":"rcnt"})

它返回所有span标记的数组。现在可以使用.string()函数检索span标记中的字符串部分:

for i in range(0,len(offers)):
 print offers[i]