Python - 获取公司在一段时间内的股票信息

0 投票
2 回答
1839 浏览
提问于 2025-04-16 22:06

我想获取的不仅仅是当前时间的股票信息,但我不知道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")

撰写回答