Python获得股票价格
我正在做一个教程,从雅虎的未婚夫那里得到不同的股票价格。我有这个代码,它可以工作,但是打印出不同股票符号的价格,然后是数组括号,但不是价格。非常感谢大家的帮助Python获得股票价格,python,Python,我正在做一个教程,从雅虎的未婚夫那里得到不同的股票价格。我有这个代码,它可以工作,但是打印出不同股票符号的价格,然后是数组括号,但不是价格。非常感谢大家的帮助 import urllib import re symbolslist = ["aapl", "spy", "goog", "nflx"] i = 0 while i < len(symbolslist): url = "http://finance.yahoo.com/q?s=" + symbolslist[i] +
import urllib
import re
symbolslist = ["aapl", "spy", "goog", "nflx"]
i = 0
while i < len(symbolslist):
url = "http://finance.yahoo.com/q?s=" + symbolslist[i] + "&ql=1"
htmlfile = urllib.urlopen(url)
htmltext = htmlfile.read()
regex = '<span id="yfs_l84_' + symbolslist[i] + ' "> (.+?) </span>'
pattern = re.compile(regex)
price = re.findall(pattern, htmltext)
print "the price of ", symbolslist[i], " is ", price
i += 1
导入urllib
进口稀土
符号列表=[“aapl”、“spy”、“goog”、“nflx”]
i=0
而i
编辑:仔细想想,您的regexp根本不匹配任何内容;请检查regexp开头是否正确
EDIT2:好的,看起来你把空白放在了不需要的地方(而不是应该放的地方)。在将来格式化代码时,请尽量保持整洁,无论是供您自己使用,还是向其他人显示时。正确的regexp是:
regex = '<span id="yfs_l84_' + symbolslist[i] + '">(.+?)</span>'
到
因为re.findall
返回一个列表,而不是单个项目,并且列表的字符串表示形式是[bla,bla,bla,…]
Furhtermore,为了循环一系列项目,不要使用,而循环使用手动计数器和索引这不是汇编器:
for symbol in symbols:
...
可能是“”>之间的空格导致了问题这段代码编写后,Yahoo可能更改了他们的HTML。您是否仔细检查了它要查找的范围是否仍然存在?为什么不在符号列表中使用for循环;for符号:
?在关闭之前,您的正则表达式有一个额外的空格。”
在定价前后,我可能会使用BeautifulSoup进行HTML解析,因为它有一些内置的错误更正,并且更容易用于此类用例。非常确定yahoo过去有一个选项可以将价格作为CSV获取——如果仍然存在的话,这将简化你的解析过程。尝试并执行代码并不困难,这样你就可以给出一个肯定的答案,没有任何可能。谢谢你Erik你是对的我的正则表达式写错了整个问题是我有一个介于“和”之间的空格“@Codin:一般来说,你真的需要写东西,只要看看你最后的评论:除了结尾的那一个,没有一个标点符号,即使你的评论由三句话组成。
price = re.findall(pattern, htmltext)[0]
for symbol in symbols:
...