【发布时间】:2013-06-14 18:42:32
【问题描述】:
这是我在网上找到的一些代码,可以从网站获取价格(即小数)。我需要更改此代码,使其不返回小数,而是返回字符串。
from bs4 import BeautifulSoup
import urllib, string, sys, urllib2, re, time
start = time.time()
# Find Bloomberg Brent Price
rawBloomData = urllib2.urlopen("http://www.bloomberg.com/energy/").read()
BloomSoup = BeautifulSoup(rawBloomData)
brent = BloomSoup.findAll('tr')[14]
BloomPrice = str(re.search(re.compile (r"\d+\.\d*"),str(brent.contents)).group())
print (BloomPrice)
这将返回原油布伦特价格。我需要抓住它的“价格”这个词。 当我从
更改代码行时brent = BloomSoup.findAll('tr')[14]
to
brent = BloomSoup.findAll('tr')[12]
它应该返回
'Price'
【问题讨论】:
-
您的问题是什么?您希望它返回“价格”,但不是吗?它实际上返回了什么?
-
@DanielRenshaw 很抱歉让您感到困惑。我希望它返回实际的单词价格。如果你去bloomberg.com/energy你会看到在价格这个词下,有62.03、65034等实际价格。但我不想要价格,我想提取“价格”这个词本身。
-
我想我明白了,但你说你是通过将索引从 14 更改为 12 来得到价格这个词的,那么问题是什么?
-
@DanielRenshaw 当我运行索引为 12 的代码时,它返回一个错误,因为代码只处理小数,而不是字符串
标签: python string web-scraping decimal beautifulsoup