2011-05-04 46 views
2

您好 我已經掃描了本網站和谷歌的任何最新更新從雅虎財經下載股票信息。我沒有太多成功。由於我的測試我的應用程序,我碰到一個404服務器未發現異常使用下面的C#代碼段:雅虎財務有數據要求上限。是否有替代方案或解決方法?

string urlTemplate = 
       @"http://ichart.finance.yahoo.com/table.csv?s=[symbol]&a=" + 
        "[startMonth]&b=[startDay]&c=[startYear]&d=[endMonth]&e=" + 
         "[endDay]&f=[endYear]&g=d&ignore=.csv"; 
... 
WebClient wc = new WebClient(); 
      try 
      { 
       history = wc.DownloadString(urlTemplate); 
      } 

你知道,如果雅虎最近(或總是)有多少多少,你可以要求一些更新來自雅虎的財務服務器?如果是這樣,有人知道上限或閾值?是否隨時間或最大數量的每日要求?我考慮過把最多2分鐘的隨機睡眠請求放到這裏。我認爲這不會有幫助。有沒有其他選擇可以讓我不斷向雅虎財經提出要求?我認爲雅虎有某種訂閱服務可以用於這個確切目的。我找不到任何關於它的事情。如果這些都不是雅虎的做法,那麼是否有人會提供價格合理的替代服務或數據饋送服務的建議?

+0

Yahoo頁面更新頻率如何?您可以將這些值本地緩存在文件或數據庫中,存儲這些數據獲取的日期時間。然後,如果它大於x分鐘,則會再次獲取頁面並更新您的本地值。 – Andre 2011-05-04 19:22:00

+0

好答案在這裏:http://stackoverflow.com/questions/9346582/what-is-the-query-limit-on-yahoos-finance-api – fantabolous 2014-10-12 12:07:44

回答

4

他們從未說過限制是什麼。我曾經每天更新6000股的股票,它工作。在其他一些頁面上,這個限制似乎要高得多,但是在歷史股票價格上,它們確實阻礙了某些點。

順便說一句,有時雅虎服務器返回未記錄的HTTP 999代碼,我解釋爲「太多請求」。

如果你想要的是一天數據的結束,那麼也許你可以試試這個: http://www.eoddata.com/products/default.aspx (我從來沒有嘗試過自己)

當然也有支付更頻繁的數據訂閱。

3

查看Yahoo Query Language Usage Information and Limits頁面。這適用於所有YQL API,而不僅僅是財務API。

YQL速率限制:

YQL Rate Limits

這意味着:

  • 使用公共API(無身份驗證),被限制爲每小時IP 2000請求(或每天總計48,000個請求)。
  • 使用私有API(使用API key進行OAuth身份驗證),您每個IP每小時限制爲 20,000個請求,每個API密鑰限制爲每天100,000個請求。

至於實施,如果您希望使用Yahoo Finance API,那麼您必須遵守他們的要求。建立一個系統,只允許他們允許的請求數量來防止錯誤。您可以使用數據庫(如果有多個腳本/應用程序客戶端使用它)並使用線程等待,直到它可以發出更多請求。獲取API key以延長您的限制。獲取多個API密鑰以進一步擴展它。

至於替代方案,有太多的數不清。我只使用了雅虎和Google API。雅虎是我的首選的選項,但我還沒有找到一個可比較的免費替代品。試試你的運氣,讓我知道如果你找到一個!