2010-07-08 51 views
8

我需要一種方式從客戶端JavaScript中找到全部公司名稱給出了股票代碼。我知道雅虎財經的接口中的:需要API才能找到給定股票代碼的完整公司名稱

http://finance.yahoo.com/d/quotes.csv?s=TKR&f=n

和我能夠訪問通過YQL(因爲這是跨域)。然而,這並沒有返回完整的公司名稱,但雅虎財經這樣做是因爲它出現在公司的圖表和他們關於公司的頁面上。

我不需要通過雅虎財務的解決方案...只是在這裏提到它,因爲我已經知道它(並且正在訪問其他數據)。

+0

這個問題似乎在這裏被問到:http://stackoverflow.com/questions/885456/stock-ticker-symbol-lookup-api – Icemanind 2010-07-08 20:10:27

+0

該帖子認爲找到一個公司名稱代碼。我想走向另一個方向:獲取* full *的名字給予股票。 – Zhami 2010-07-09 15:04:57

回答

7

其中一個社區提供的YQL表看起來像它會爲你工作:yahoo.finance.stocks。

例YQL查詢: select CompanyName from yahoo.finance.stocks where symbol="TKR"

更新2012-02-10:作爲firebush在評論中指出,這YQL社區表(yahoo.finance.stocks)似乎不正確工作更可能是因爲finance.yahoo.com上的HTML頁面結構發生了變化。這是任何依賴HTML抓取而不是真正的API的YQL表的缺點的一個很好的例子。 (這對於雅虎財經不存在,很遺憾。)

它看起來像社區表谷歌財經仍在工作,所以這可能是嘗試另:select * from google.igoogle.stock where stock='TRK';

+0

不錯。感謝您提供YQL控制檯的鏈接!有點間接使用YQL來抓取網頁,但它的工作原理。 – Zhami 2010-07-13 17:24:45

+0

這真的很令人印象深刻。謝謝! – 2010-07-13 23:58:28

+0

當我點擊你的鏈接並點擊「測試」時,公司名稱字段總是空的 - 我也試過其他股票。如果我將選擇更改爲「*」,則會顯示其他字段(如開始日期),但名稱仍爲空。 :(我不知道這是否曾經工作,但現在不受支持? – firebush 2012-02-10 08:28:36

1

我有屏幕在過去使用Yahoo Finance或MSN Money取消了此信息。例如,您可以前往(link)獲取埃克森美孚的這些信息。至於你可能需要自己創建一個API。對於API結帳Xignite

0

您可以使用Jonathan Christian的.NET API,可以在NuGet的」雅虎股票行情「下使用雅虎的查詢服務。

https://github.com/jchristian/yahoo_stock_quotes

//Create the quote service 
var quote_service = new QuoteService(); 

//Get a quote 
var quotes = quote_service.Quote("MSFT", "GOOG").Return(QuoteReturnParameter.Symbol, 
                QuoteReturnParameter.Name, 
                QuoteReturnParameter.LatestTradePrice, 
                QuoteReturnParameter.LatestTradeTime); 

//Get info from the quotes 
foreach (var quote in quotes) 
{ 
    Console.WriteLine("{0} - {1} - {2} - {3}", quote.Symbol, quote.Name, quote.LatestTradePrice, quote.LatestTradeTime); 
} 

編輯:張貼在此之後我嘗試這個確切的代碼並且它不是爲我工作所以不是我用Yahoo Finance Managed Api但它通過的NuGet是不可用的。使用here

QuotesDownload dl = new QuotesDownload(); 
DownloadClient<QuotesResult> baseDl = dl; 

QuotesDownloadSettings settings = dl.Settings; 
settings.IDs = new string[] { "MSFT", "GOOG", "YHOO" }; 
settings.Properties = new QuoteProperty[] { QuoteProperty.Symbol, 
             QuoteProperty.Name, 
             QuoteProperty.LastTradePriceOnly 
             };    
SettingsBase baseSettings = baseDl.Settings; 
Response<QuotesResult> resp = baseDl.Download(); 

此外,如果你只是想下載的東西stocktwits API的一個很好的例子,有在「資源」 http://stocktwits.com/developers/docs

0

它也可以使用Quandl.com的下載鏈接的符號和行業資源。他們的WIKI數據庫包含3339個主要股票,可通過secwiki_tickers.csv文件獲取。對於一個普通的文件 portfolio.lst存儲您的行情中(在美國市場的股票)的列表,例如:

AAPL 
IBM 
JNJ 
MSFT 
TXN 

你可以掃描名.csv文件,E。G:

import pandas as pd 

df = pd.read_csv('secwiki_tickers.csv') 
dp = pd.read_csv('portfolio.lst',names=['pTicker']) 

pTickers = dp.pTicker.values # converts into a list 

tmpTickers = [] 

for i in range(len(pTickers)): 
    test = df[df.Ticker==pTickers[i]] 
    if not (test.empty): 
     print("%-10s%s" % (pTickers[i], list(test.Name.values)[0])) 

什麼返回:

AAPL  Apple Inc. 
IBM  International Business Machines Corporation 
JNJ  Johnson & Johnson 
MSFT  Microsoft Corporation 
TXN  Texas Instruments Inc. 

有可能更多的股票從其他Quandl的資源結合起來。在線查看文檔。