Как я могу получить котировки акций с помощью Google Finance API?

119

Я ищу доступ к финансовым данным из сервисов Google.

Я нашел этот URL-адрес, который содержит данные об акциях Microsoft.

Какие все возможные параметры Google допускает для такого типа HTTP-запроса? Я хотел бы увидеть всю разнообразную информацию, которую смогу получить.

Josema
источник
36
Как вы нашли этот URL?
timmyc
2
Вы можете легко получить данные Google Finance с помощью YQL, который прост и основан на REST. Пример можно найти здесь: jarloo.com/google-finance-and-yql
Келли
Это отличный вопрос, есть ли еще актуальные ответы?
NickO
1
@ Timmyc - client=igПараметр наводит меня на мысль, что он использовался / использовался для виджета iGoogle. Только предположение.
dana
Обратите внимание: если ваше приложение предназначено для общего пользования, использование Google Finance API противоречит условиям обслуживания Google . @timmyc: &clientпараметр не нужен. finance.google.com/finance/info?q=NASDAQ%3aMSFT работает.
Дэн Даскалеску

Ответы:

40

Есть целый API для управления портфелями. * Ссылка удалена. Google больше не предоставляет для этого API разработчика.

Получить котировки акций немного сложнее. Я нашел одну статью, в которой кто-то получил котировки акций с помощью таблиц Google.

Вы также можете использовать гаджеты, но я думаю, это не то, что вам нужно.

Упомянутый вами API интересен, но, похоже, не задокументирован (насколько мне удалось найти).

Вот некоторая информация об исторических ценах , просто для справки.

Клетус
источник
5
Существует недокументированный API от Google, который вы можете использовать для более простого получения информации об акциях, поскольку он основан на REST и не требует аутентификации. Вот пример C # jarloo.com/google-stock-api
Келли
24
Примечание. Google Finance API официально устарел с 26 мая 2011 г. и будет закрыт 20 октября 2012 г.
shawnwall,
Этот ответ в основном не по теме. Ответ ниже правильный.
Дэн Даскалеску
74

API Google Finance Gadget официально осуждается с октября 2012 года , но в апреле 2014 года, он по - прежнему активен:

http://www.google.com/finance/info?q=NASDAQ:GOOG
http://www.google.com/finance/info?q=CURRENCY:GBPUSD
http://finance.google.com/finance/ Информация? клиент = & мкг д = AAPL, YHOO

Вы также можете получить диаграммы: https://www.google.com/finance/getchart?q=YELP

Обратите внимание: если ваше приложение предназначено для общего пользования, использование Google Finance API противоречит условиям обслуживания Google .

Проверьте google-finance-get-stock-quote-realtime полный код на Python

digitalPBK
источник
1
Это привело меня именно к тому, что я искал! Спасибо.
Grizzly Peak Software
Но я не могу получить объем торгов через этот URL. Можете ли вы мне помочь, если мне тоже нужны данные об объеме?
Саши Кант
@DanDascalescu Спасибо, Дэн. Похоже, он только что упал, когда я его проверял. Комментарий удален.
jpgeek
2
Спасибо, все еще актуально сегодня, в сентябре 2016
CleanBold 02
5
К сожалению, по состоянию на сентябрь 2017 года количество этих ссылок 404.
Сент-Джон Джонсон,
17

Я нашел этот сайт полезным.

http://benjisimon.blogspot.com/2009/01/truly-simple-stock-api.html

Он ссылается на API Yahoo, который кажется очень простым и полезным.

Например:

http://finance.yahoo.com/d/quotes.csv?s=GOOG+AAPL&f=snl1

Полная информация здесь:

http://www.gummy-stuff.org/Yahoo-data.htm

fratrik
источник
В Yahoo, чтобы получить это с помощью curl curl -L "http://finance.yahoo.com/d/quotes.csv?s=msft&f=sl1d1t1c1ohgv&e=.csv". В curl -Lнужен иначе ничего не получится
arulraj.net 08
9

Изменить: вызов api был удален Google. так что он больше не функционирует.

Согласен с ответом Парешкумара. Теперь есть обертка googlefinance на python для вызова url.

Установить googlefinance

$pip install googlefinance

Узнать текущую стоимость акций легко:

>>> from googlefinance import getQuotes
>>> import json
>>> print json.dumps(getQuotes('AAPL'), indent=2)
[
  {
    "Index": "NASDAQ", 
    "LastTradeWithCurrency": "129.09", 
    "LastTradeDateTime": "2015-03-02T16:04:29Z", 
    "LastTradePrice": "129.09", 
    "Yield": "1.46", 
    "LastTradeTime": "4:04PM EST", 
    "LastTradeDateTimeLong": "Mar 2, 4:04PM EST", 
    "Dividend": "0.47", 
    "StockSymbol": "AAPL", 
    "ID": "22144"
  }
]

Финансы Google - это источник, который предоставляет данные о запасах в реальном времени. Существуют также другие API от yahoo, такие как yahoo-financial , но они задерживаются на 15 минут для акций NYSE и NASDAQ.

Хунтао
источник
приятно в реальном времени, то, что я искал!
eusoubrasileiro 02
3

Возможно, интересно, что документация Google Finance API включает раздел, в котором подробно описывается, как получить доступ к различным параметрам через JavaScript .

Я полагаю, что API JavaScript может быть оболочкой для запроса JSON, который вы упомянули выше ... возможно, вы могли бы проверить, какие HTTP-запросы отправляются.

Филипп Ленссен
источник
3

Опираясь на плечи гигантов ... вот однострочный текст, который я написал, чтобы поместить все текущие данные о запасах Google в локальные переменные оболочки Bash:

stock=$1 

# Fetch from Google Finance API, put into local variables
eval $(curl -s "http://www.google.com/ig/api?stock=$stock"|sed 's/</\n</g' |sed '/data=/!d; s/ data=/=/g; s/\/>/; /g; s/</GF_/g' |tee /tmp/stockprice.tmp.log)

echo "$stock,$(date +%Y-%m-%d),$GF_open,$GF_high,$GF_low,$GF_last,$GF_volume"

Тогда у вас будут доступны переменные типа $ GF_last $ GF_open $ GF_volume и т. Д. Запустите env или посмотрите внутри /tmp/stockprice.tmp.log

http://www.google.com/ig/api?stock=TVIX&output=csv by itself returns:

<?xml version="1.0"?>
<xml_api_reply version="1">
<finance module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1" row="0" section="0" >
<symbol data="TVIX"/>
<pretty_symbol data="TVIX"/>
<symbol_lookup_url data="/finance?client=ig&amp;q=TVIX"/>
<company data="VelocityShares Daily 2x VIX Short Term ETN"/>
<exchange data="AMEX"/>
<exchange_timezone data="ET"/>
<exchange_utc_offset data="+05:00"/>
<exchange_closing data="960"/>
<divisor data="2"/>
<currency data="USD"/>
<last data="57.45"/>
<high data="59.70"/>
<low data="56.85"/>

etc.

Итак, для stock="FBM" /tmp/stockprice.tmp.log (и вашей среды) будет содержаться:

GF_symbol="FBM"; 
GF_pretty_symbol="FBM"; 
GF_symbol_lookup_url="/finance?client=ig&amp;q=FBM"; 
GF_company="Focus Morningstar Basic Materials Index ETF"; 
GF_exchange="NYSEARCA"; 
GF_exchange_timezone=""; 
GF_exchange_utc_offset=""; 
GF_exchange_closing=""; 
GF_divisor="2"; 
GF_currency="USD"; 
GF_last="22.82"; 
GF_high="22.82"; 
GF_low="22.82"; 
GF_volume="100"; 
GF_avg_volume=""; 
GF_market_cap="4.56"; 
GF_open="22.82"; 
GF_y_close="22.80"; 
GF_change="+0.02"; 
GF_perc_change="0.09"; 
GF_delay="0"; 
GF_trade_timestamp="8 hours ago"; 
GF_trade_date_utc="20120228"; 
GF_trade_time_utc="184541"; 
GF_current_date_utc="20120229"; 
GF_current_time_utc="033534"; 
GF_symbol_url="/finance?client=ig&amp;q=FBM"; 
GF_chart_url="/finance/chart?q=NYSEARCA:FBM&amp;tlf=12"; 
GF_disclaimer_url="/help/stock_disclaimer.html"; 
GF_ecn_url=""; 
GF_isld_last=""; 
GF_isld_trade_date_utc=""; 
GF_isld_trade_time_utc=""; 
GF_brut_last=""; 
GF_brut_trade_date_utc=""; 
GF_brut_trade_time_utc=""; 
GF_daylight_savings="false"; 
Marcos
источник
Могу ли я использовать URL-адрес для котировки акций в реальном времени?
Саши Кант
В основном да. Сравните GF_trade_time_utcс текущим временем / датой и судите сами.
Маркос
Спасибо за ответ, но здесь объем не поступает в json, есть ли другой способ или URL-адрес для торговли объемом?
Саши Кант
3

Это уже не активный API для Google, вы можете попробовать Xignite, хотя они взимают плату: http://www.xignite.com

Кристофер А. Льюис
источник
1
Есть ли у вас опыт использования их услуг? Сколько они берут?
Зорайр
3

Проблема с данными Yahoo и Google заключается в том, что они нарушают условия обслуживания, если вы используете их для коммерческого использования. Когда ваш сайт / приложение еще маленькое, это не важно, но как только вы немного подрастете, вы начинаете прекращать обмен и отказываетесь от обмена. Примером лицензированного решения является FinancialContent: http://www.financialcontent.com/json.php или Xignite.

Барт
источник
2

Вот пример, который вы можете использовать. У меня еще нет Google Finance, но вот пример Yahoo. Вам понадобится HTMLAgilityPack , что здорово. Счастливый символ охоты.

Вызовите процедуру, используя YahooStockRequest(string Symbols);

Где символы = строка символов, разделенных запятыми, или только один символ

public string YahooStockRequest(string Symbols,bool UseYahoo=true)
        {
            {
                string StockQuoteUrl = string.Empty;

                try
                {
                    // Use Yahoo finance service to download stock data from Yahoo
                    if (UseYahoo)
                    {
                        string YahooSymbolString = Symbols.Replace(",","+");
                        StockQuoteUrl = @"http://finance.yahoo.com/q?s=" + YahooSymbolString + "&ql=1";
                    }
                    else
                    {
                        //Going to Put Google Finance here when I Figure it out.
                    }

                    // Initialize a new WebRequest.
                    HttpWebRequest webreq = (HttpWebRequest)WebRequest.Create(StockQuoteUrl);
                    // Get the response from the Internet resource.
                    HttpWebResponse webresp = (HttpWebResponse)webreq.GetResponse();
                    // Read the body of the response from the server.

                    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
                    string pageSource;
                    using (StreamReader sr = new StreamReader(webresp.GetResponseStream()))
                    {
                        pageSource = sr.ReadToEnd();
                    }
                    doc.LoadHtml(pageSource.ToString());
                    if (UseYahoo)
                    {
                        string Results=string.Empty;
                        //loop through each Symbol that you provided with a "," delimiter
                        foreach (string SplitSymbol in Symbols.Split(new char[] { ',' }))
                        {
                            Results+=SplitSymbol + " : " + doc.GetElementbyId("yfs_l10_" + SplitSymbol).InnerText + Environment.NewLine;
                        }
                        return (Results);
                    }
                    else
                    {
                        return (doc.GetElementbyId("ref_14135_l").InnerText);
                    }

                }
                catch (WebException Webex)
                {
                    return("SYSTEM ERROR DOWNLOADING SYMBOL: " + Webex.ToString());

                }

            }
        }
Патрик
источник
2

Самый простой способ, как вы объяснили, - это ссылка на «Промышленный индекс Доу-Джонса».

Ссылка 2 предназначена для NASDAQ-100.

и для всех связанных с NASDAQ ссылка 3

Я думаю, так и должно быть, иначе вы хотите, чтобы в нотациях JSON было то же самое, что и в Microsoft

Пожалуйста, обратитесь к этому старому сообщению я думаю, это поможет,

Обновить:

Чтобы узнать подробности о томе и других деталях, я создал vbscript, который использует объект IE для извлечения деталей из ссылки и предупреждает о содержании в конкретном идентификаторе (создайте файл .vbs и запустите его ..

Set IE = CreateObject("InternetExplorer.Application")
while IE.readyState = 4: WScript.Sleep 10: wend
IE.Navigate "https://www.google.com/finance?q=INDEXNASDAQ%3ANDX&sq=NASDAQ&sp=2&ei=B3UoUsiIH5DIlgPEsQE"
IE.visible = true
while IE.readyState = 4: WScript.Sleep 10: wend
dim ht
ht= IE.document.getElementById("market-data-div").innerText
msgBox ht
IE.quit

это предупредит значения со страницы, подобной этой

3,124.54 0.00 (0.00%)
Sep 4 - Close
INDEXNASDAQ real-time data - Disclaimer
Range       -
52 week 2,494.38 - 3,149.24
Open        -
Vol.    0.00

Я уверен, что это поможет ..

MarmiK
источник
Большое спасибо за ответ. Но мне нужны данные в реальном времени в json вместе с торговым объемом, есть ли какие-либо услуги для отдыха?
Саши Кант
1
Пожалуйста, обратитесь к этому для получения подробной информации о реальном времени, обычно эти ссылки предоставляют данные для обновления, за некоторыми исключениями .. google.com/googlefinance/disclaimer/#realtime
MarmiK,
Еще раз спасибо, братан, это было действительно полезно, но все же как я могу получить информацию об объеме?
Саши Кант 05
1
Если вы знаете о VBA или VBS на странице ( google.com/… ), то идентификатор элемента - 'market-data-div', который содержит еще 2 div, а второй div содержит таблицу с таким объемом <td class="val">759.30M</td>. Если вам нужна дополнительная помощь, пожалуйста, опубликуйте код своей работы или скрипки.
MarmiK
Нет, сэр, я понятия не имею о VBA или VBS, но обязательно проверим это. Можете ли вы предоставить мне URL-адрес, который приводит к котировке акций в реальном времени вместе с информацией об объеме?
Саши Кант 05
1

Попробуйте это: http://finance.google.com/finance/info?client=ig&q=NASDAQ:GOOGL

Он вернет вам все доступные сведения об указанном складе.

например, вывод будет выглядеть следующим образом:

// [ {
"id": "694653"
,"t" : "GOOGL"
,"e" : "NASDAQ"
,"l" : "528.08"
,"l_fix" : "528.08"
,"l_cur" : "528.08"
,"s": "0"
,"ltt":"4:00PM EST"
,"lt" : "Dec 5, 4:00PM EST"
,"lt_dts" : "2014-12-05T16:00:14Z"
,"c" : "-14.50"
,"c_fix" : "-14.50"
,"cp" : "-2.67"
,"cp_fix" : "-2.67"
,"ccol" : "chr"
,"pcls_fix" : "542.58"
}
]

В конце этого URL-адреса можно указать символ акций вашей компании, чтобы получить подробную информацию:

http://finance.google.com/finance/info?client=ig&q=<YOUR COMPANY STOCK SYMBOL>
OverrockSTAR
источник
0

Чтобы найти данные диаграммы с помощью API финансовых данных Google, нужно просто зайти в Google, как если бы вы искали поисковый запрос, ввести в поисковой системе «финансы», и появится ссылка на «Финансы Google». Оказавшись в поисковой системе финансов Google, введите название тикера в механизм API финансовых данных, и результат будет отображен. Однако следует отметить, что все графики финансов Google имеют задержку на 15 минут, и их можно использовать максимум для лучшего понимания прошлой истории тикера, а не текущей цены.

Решением проблемы отложенной информации о диаграммах является получение API финансовых данных в реальном времени. Примером одного из них может быть интерфейс barchartondemand, который содержит информацию о котировках в реальном времени, а также другие подробные функции, которые упрощают поиск точной диаграммы, которую вы ищете. Благодаря полностью настраиваемым функциям и специальным инструментам программирования для получения точной торговой информации, инструменты barchartondemand значительно превосходят финансы Google.

Крис
источник