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