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

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

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

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

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

【问题讨论】:

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

标签: api yahoo finance


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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-22
        • 1970-01-01
        相关资源
        最近更新 更多