Python - 获取公司在一段时间内的股票信息
我想获取的不仅仅是当前时间的股票信息,但我不知道Google财经是否允许获取超过一个日期的信息。比如说,如果我想知道过去30天内Google股票的价值,并把这些数据以列表的形式返回……我该怎么做呢?
使用下面的代码只能得到一个单一的值:
class GoogleFinanceAPI:
def __init__(self):
self.prefix = "http://finance.google.com/finance/info?client=ig&q="
def get(self,symbol,exchange):
url = self.prefix+"%s:%s"%(exchange,symbol)
u = urllib2.urlopen(url)
content = u.read()
obj = json.loads(content[3:])
return obj[0]
c = GoogleFinanceAPI()
quote = c.get("MSFT","NASDAQ")
print quote
2 个回答
1
最好的办法是使用谷歌提供的API。特别要关注返回参数,你可以在这里指定你想要的数据时间长度。
如果你想用Python来实现,首先要弄清楚查询的格式,看看日期是怎么放进去的,然后把它替换到网址里,进行GET请求,解析结果后把它加入你的结果列表中。
2
这里有一个获取谷歌财经历史数据的方法:
http://code.activestate.com/recipes/576495-get-a-stock-historical-value-from-google-finance/
看起来它返回的数据是.csv格式的。
补充:这是你修改过的脚本,可以获取.csv文件。对我来说是有效的。
import urllib2
import csv
class GoogleFinanceAPI:
def __init__(self):
self.url = "http://finance.google.com/finance/historical?client=ig&q={0}:{1}&output=csv"
def get(self,symbol,exchange):
page = urllib2.urlopen(self.url.format(exchange,symbol))
content = page.readlines()
page.close()
reader = csv.reader(content)
for row in reader:
print row
c = GoogleFinanceAPI()
c.get("MSFT","NASDAQ")