2011-07-22 53 views
0

試圖讓不僅僅是在當前時間段的股票信息更多了,我想不通,如果谷歌財經允許的不僅僅是一個獲取信息日期。例如,如果我想知道在過去的30天谷歌股票價值並返回數據作爲列表...我將如何去這樣做?Python-獲取股票信息的公司的日期範圍

使用下面的代碼,只讓我一個值:

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 
+0

什麼是他們的文件說? –

回答

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") 
+0

試過得到這個工作很多times--相當肯定谷歌改變了它的接口由於它是由這樣的屏幕抓取技術不再起作用 – Parseltongue

+0

http://www.google.com/finance/historical?client=ig&q=MSFT:納斯達克&輸出= csv適合我。 – agf

+0

該網址適用於我 - 模塊不適用。 – Parseltongue

1

向前走的最佳方式是使用Google提供的API。在你指定需要多長時間的情況下,特別查找返回參數。

相反,如果你想通過Python這樣做,找出查詢模式之日起進入去的地方,並在URL代替它,做一個GET,解析結果,包括它在你的結果。