使用股票代码输入、雅虎或谷歌 API 检索公司名称

Posted

技术标签:

【中文标题】使用股票代码输入、雅虎或谷歌 API 检索公司名称【英文标题】:Retrieve company name with ticker symbol input, yahoo or google API 【发布时间】:2016-12-22 09:27:06 【问题描述】:

只是寻找一个简单的api返回,我可以在其中输入股票代码并接收完整的公司名称:

ticker('MSFT') 将返回 “微软”

【问题讨论】:

呃……你试过什么? 我在现场浏览了一堆以前的答案,但找不到任何最新的。 你试过写什么代码? 【参考方案1】:

您需要首先找到一个允许您查找股票代码并提供信息的网站/API。然后,您可以查询该 API 以获取信息。

我在这里想出了一个快速而肮脏的解决方案:

import requests


def get_symbol(symbol):
    symbol_list = requests.get("http://chstocksearch.herokuapp.com/api/".format(symbol)).json()

    for x in symbol_list:
        if x['symbol'] == symbol:
            return x['company']


company = get_symbol("MSFT")

print(company)

本网站仅提供公司名称。我没有进行任何错误检查。你需要requests 模块才能工作。请使用pip install requests 安装它。

更新:这是使用 Yahoo! 的代码示例财务 API:

import requests


def get_symbol(symbol):
    url = "http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=&region=1&lang=en".format(symbol)

    result = requests.get(url).json()

    for x in result['ResultSet']['Result']:
        if x['symbol'] == symbol:
            return x['name']


company = get_symbol("MSFT")

print(company)

【讨论】:

是否可以根据公司名称返回股票代码?我应该在你的代码中修改哪些参数?【参考方案2】:

这是另一个 Yahoo API 调用。 @masnun 的调用将返回包含搜索参数的所有结果,例如尝试 AMD(Advanced Micro Devices): http://d.yimg.com/autoc.finance.yahoo.com/autoc?query=amd&region=1&lang=en 给你AMD (Advanced Micro Devices, Inc.), AMDA (Amedica Corporation), DOX (Amdocs Limited),等。

如果您知道代码,您可以尝试以下任一 Yahoo API:z http://finance.yahoo.com/d/quotes.csv?s=amd&f=nb4t8(有据可查,这个特定的电话要求 n=name;b4=账面价值;t8=1 年目标价)。 https://query2.finance.yahoo.com/v7/finance/options/amd(文档不是很好,但很新……在此处查看有关此 API 的更多信息:https://***.com/a/40243903/933972)

忘记包含 Google API,这对于股票报价来说似乎还可以,但对于期权链的完整数据来说并不可靠: 'https://www.google.com/finance?q=nyse:amd&output=json'

【讨论】:

【参考方案3】:

使用模糊匹配从公司名称中获取公司符号,反之亦然

from fuzzywuzzy import process
import requests

def getCompany(text):
    r = requests.get('https://api.iextrading.com/1.0/ref-data/symbols')
    stockList = r.json()
    return process.extractOne(text, stockList)[0]


getCompany('GOOG')
getCompany('Alphabet')

【讨论】:

【参考方案4】:

import yfinance as yf

msft = yf.Ticker("MSFT")

company_name = msft.info['longName']

#Output = 'Microsoft Corporation'

这样你就可以从股票代码中得到公司的全名

【讨论】:

我喜欢 yfinance 并经常使用它。不幸的是,信息方法似乎有些不稳定,具体取决于您使用的股票。上面的其他一些建议似乎来自 Yahoo 和 Google API 仍在运行的日子。 实际上这个答案不适用于所有股票代码。例如,股票代码 OGEN(即 Oragenics, Inc)给出以下错误: IndexError: list index out of range 我想这只是 yfinance 不是最新的。此外,如果您认为一个不存在的股票代码,例如“--”,它会抛出一个 ValueError: ValueError: No tables found When,理想情况下,我希望它类似于 None。【参考方案5】:

我使用 Quandl 来计算价格,所以当我遇到类似问题时,我决定在那里查看。如果您转到https://www.quandl.com/data/EOD-End-of-Day-US-Stock-Prices/documentation,在可用代码下方大约四分之一处,有一个链接可以下载包含名称和代码的 csv 文件。然后我使用下面的代码创建一个以ticker为键并命名一个值的字典。

def companyNames():

`` cnames = pd.read_csv('ticker_list.csv') cnames_dict = pd.Series(cnames.Name.values, index=cnames.Ticker).to_dict()

    return cnames_dict

【讨论】:

以上是关于使用股票代码输入、雅虎或谷歌 API 检索公司名称的主要内容,如果未能解决你的问题,请参考以下文章

在 R 中下载雅虎股票价格

从给定的城市谷歌地方 API 检索所有地区和子地区

如何使用 Yahoo,Finance stock API 获取股票数据

从谷歌金融、雅虎金融或交易所本身获取股票报价

我正在努力寻找一种将 IPO 股票从雅虎金融 API 中撤出的方法

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