需要一个 API 来查找给定股票代码的完整公司名称 [关闭]

Posted

技术标签:

【中文标题】需要一个 API 来查找给定股票代码的完整公司名称 [关闭]【英文标题】:Need an API to find a full company name given a ticker symbol [closed] 【发布时间】:2011-03-13 13:26:51 【问题描述】:

我需要在客户端 javascript 中找到一个完整公司名称,并给出股票代码。我知道 Yahoo Finance 的界面位于:

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

并且能够通过 YQL 访问它(因为这是跨域的)。但是,这不会返回完整的公司名称,但雅虎财经却有这样的名称,因为它出现在公司的图表和有关公司的页面上。

我不需要通过 Yahoo Finance 提供解决方案...只需在此处提及它,因为我已经知道它(并且正在访问它以获取其他数据)。

【问题讨论】:

这里似乎有人问过这个问题:***.com/questions/885456/… 那个帖子是关于寻找公司名称的代码。我想朝另一个方向发展:获取 full 名称,并给出一个股票代码。 【参考方案1】:

其中一个社区提供的 YQL 表看起来很适合您:yahoo.finance.stocks。

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

2012-02-10 更新: 正如 firebush 在 cmets 中指出的那样,这个 YQL 社区表 (yahoo.finance.stocks) 似乎不再正常工作,可能是因为Finance.yahoo.com 上的 html 页面结构已更改。这是一个很好的例子,说明了任何依赖 HTML 抓取而不是真正的 API 的 YQL 表的缺点。 (不幸的是,雅虎财经不存在。)

Google 财经的社区表似乎仍在工作,因此可以尝试以下替代方法:select * from google.igoogle.stock where stock='TRK';

【讨论】:

不错。感谢您提供 YQL 控制台的链接!!使用 YQL 抓取网页有点间接,但它确实有效。 这真是令人印象深刻。谢谢! 当我点击您的链接并点击“TEST”时,CompanyName 字段始终为空 - 我也尝试过其他股票。如果我将选择更改为“*”,则会出现其他字段(如开始日期),但名称仍然为空。 :( 我想知道这是否曾经有效但现在不受支持? @firebush 感谢您发现这一点 - 我已经用似乎仍在工作的 Google 替代方案更新了我的答案。 此时,您的 Google 结果示例不再有效。【参考方案2】:

我过去曾使用 Yahoo Finance 或 MSN Money 筛选过此信息。例如,您可以通过访问 (link) 获取有关埃克森美孚的信息。至于 API,您可能需要自己构建一个。对于 API 结帐Xignite。

【讨论】:

【参考方案3】:

您可以在此处使用公司基础 API 中的“公司搜索”操作:http://www.mergent.com/servius/

【讨论】:

这个链接现在好像失效了【参考方案4】:

您可以使用 Jonathan Christian 的 .NET api 使用 Yahoo 的查找服务,该 API 可在 NuGet 上的“Yahoo Stock Quotes”下找到。

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

【讨论】:

【参考方案5】:

也可以使用 Quandl.com 资源。他们的 WIKI 数据库包含 3339 只主要股票,可以通过secwiki_tickers.csv 文件获取。对于存储您的代码列表(美国市场的股票)的普通文件 portfolio.lst,例如:

AAPL
IBM
JNJ
MSFT
TXN

您可以扫描 .csv 文件以获取名称,例如:

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 的其他资源中合并更多库存。请参阅在线文档。

【讨论】:

以上是关于需要一个 API 来查找给定股票代码的完整公司名称 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何从python中的股票代码或公司名称获取股票市场公司部门

如何查找股票的上市时间?

如何通过输入行业名称来获取股票代码列表

如何从 Mac 上的显示名称中找到字体的完整路径?

如何找到A股的所有股票的代码?比如网址或URL等

Yahoo Finance API 股票/股票代码查找只允许完全匹配