import urllib
import re
symbolslist = ["AAPL", "SPY", "GOOG","NFLX"]
for symbol in symbolslist:
url = "http://finance.yahoo.com/q?s=%s& ql=1"%(symbol)
htmlfile = urllib.urlopen(url)
htmltext = htmlfile.read()
regex = <span id="yfs_184_%s">(.+?)</span> %(symbol.lower())
pattern = re.compile(regex)
price = re.findall(pattern, htmltext)
print price
正在尝试从雅虎财经中提取股票数据。语法是正确的,它只是打印空白方括号,而不是其中的股票数据。如果有人知道问题是什么,我将非常感激。
span id有l84
,而不是184
,修复它,它的工作。此外,您可能想要去掉URL中的空格,并在正则表达式模式
regex = '<span id="yfs_l84_%s">(.+?)</span>' % symbol.lower()
编辑:你也可以从雅虎获得CSV格式的价格(以及更多),并且传输更少的数据,例如AAPL:
http://download.finance.yahoo.com/d/quotes.csv?s=aapl&f=snl1d1t1c1w
f
是格式,有一篇博客文章列出了一些值,但我似乎找不到雅虎的参考