Получить название компании с помощью символа тикера, yahoo или google API

Просто ищу простой возврат API, где я могу ввести символ тикера и получить полное название компании:

тикер ('MSFT') вернет "Microsoft"


person paulz    schedule 16.08.2016    source источник
comment
Эээ... Что ты пробовал?   -  person hd1    schedule 16.08.2016
comment
Я просмотрел кучу предыдущих ответов на сайте и не смог найти ничего актуального.   -  person paulz    schedule 16.08.2016
comment
Какой код вы пробовали писать?   -  person hd1    schedule 16.08.2016


Ответы (5)


Сначала вам нужно найти веб-сайт / 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)
person masnun    schedule 16.08.2016
comment
Можно ли вернуть тикер по названию компании? Какие параметры я должен изменить в вашем коде? - person prashanth manohar; 31.03.2017


import yfinance as yf

msft = yf.Ticker("MSFT")

company_name = msft.info['longName']

#Output = 'Microsoft Corporation'

Таким образом, вы сможете получить полные названия компаний из биржевых символов.

person Tejas Krishna Reddy    schedule 01.02.2020
comment
Я люблю yfinance и использую его регулярно. К сожалению, кажется, что информационный метод несколько ненадежен, в зависимости от акций, с которыми вы работаете. Некоторые из приведенных выше предложений, по-видимому, относятся к тем временам, когда API Yahoo и Google еще функционировали. - person dborger; 22.02.2020
comment
На самом деле этот ответ не работает должным образом для всех бегущих строк. Например, тикер OGEN (который является Oragenics, Inc) выдает следующую ошибку: IndexError: list index out of range Я думаю, это просто yfinance не актуален. Кроме того, если вы укажете несуществующий тикер, например. --, он выдает ValueError: ValueError: Таблицы не найдены Когда, в идеале, я ожидал бы что-то вроде None. - person alejandro; 16.06.2020

Использование нечеткого соответствия для получения символа компании из названия компании или наоборот

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')
person Rajan Mehta    schedule 18.07.2019

Вот еще один вызов API Yahoo. Вызов @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), и т. д.

Если вы знаете тикер, вы можете попробовать любой из этих API Yahoo: z http://finance.yahoo.com/d/quotes.csv?s=amd&f=nb4t8 (хорошо задокументировано, этот конкретный вызов запрашивает n = имя; b4 = балансовая стоимость; t8 = целевая цена за 1 год). https://query2.finance.yahoo.com/v7/finance/options/amd (не очень хорошо документировано, но новое... см. дополнительную информацию об этом API здесь: https://stackoverflow.com/a/40243903/933972)

Забыл включить Google API, который подходит для котировок акций, но ненадежен для полных данных о цепочках опционов: 'https://www.google.com/finance?q=nyse:amd&output=json'

person dmayo    schedule 25.10.2016

Я использую Quandl для цен, поэтому, когда у меня возникла похожая проблема, я решил проверить там. Если вы перейдете на https://www.quandl.com/data/EOD-End-of-Day-US-Stock-Prices/documentation примерно на четверти пути вниз в разделе «Доступные тикеры» есть ссылка для загрузки CSV-файла, содержащего имена и тикеры. Затем я использую следующий код, чтобы создать словарь с тикером в качестве ключа и назвать значение.

def companyNames():

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

    return cnames_dict
person dborger    schedule 22.02.2020