2009-02-09 3 views
113

Я ищу доступ к финансовым данным из сервисов Google.Как я могу получить котировки акций с помощью Google Finance API?

Я нашел this URL, который получает данные о запасах для Microsoft.

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

+35

Как вы нашли этот URL? – timmyc

+2

Вы можете легко получить данные Google Finance через YQL, который прост и основан на REST. Пример можно найти здесь: http://www.jarloo.com/google-finance-and-yql/ – Kelly

+0

Это отличный вопрос, есть ли еще ответы, которые актуальны? – NickO

ответ

39

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

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

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

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

Вот некоторая информация о historical prices, только для справки.

+5

Существует не документированный API из google, который вы можете использовать для получения информации о запасах намного проще, так как он основан на REST и не требует аутентификации. Вот пример C# http://www.jarloo.com/google-stock-api/ – Kelly

+23

Примечание: API Google Finance официально устарел с 26 мая 2011 года и будет закрыт 20 октября 2012 года. – shawnwall

+0

Этот ответ в основном не по теме. Ответ ниже правильный. –

3

Возможно, интересный документ Google Finance API включает a section detailing how to access different parameters via JavaScript.

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

+2

больше не доступно –

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

+0

В yahoo, чтобы получить это, используя curl 'curl -L" http://finance.yahoo.com/d/quotes.csv?s=msft&f=sl1d1t1c1ohgv&e=.csv ". В curl '-L' необходим, иначе он не будет работать –

2

Вот пример, который вы можете использовать. Havent получил 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()); 

       } 

      } 
     } 
73

Google Finance Gadget API был официально deprecated since October 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/info?client=ig&q=AAPL,YHOO

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

Обратите внимание, что если ваше приложение для public consumption, using the Google Finance API is against Google's terms of service.

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

+1

Это привело меня именно к тому, что я искал! Благодарю. –

+0

Но я не могу получить объем, проданный через этот URL-адрес. Можете ли вы помочь мне, если мне нужны детали тома? –

+0

@DanDascalescu Спасибо Dan. Похоже, это было просто, когда я проверял. Комментарий удален. – jpgeek

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 и т. Д. Выполнить окр или увидеть внутри /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"; 
+0

Могу ли я использовать URL-адрес для цитаты в реальном времени? –

+0

В основном да. Сравните 'GF_trade_time_utc' с текущим временем/датой, и вы будете судьей. – Marcos

+0

Спасибо за ваш ответ, но здесь объем не приходит в json, есть ли другой способ или URL-адрес, чтобы получить объем торговли? –

3

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

3

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

+1

Есть ли у вас опыт использования их услуг? Сколько они берут? – Zorayr

2

Самый простой способ, как вы объяснили это link это для 'Dow Jones Industrial Average'

Link 2 является для 'NASDAQ-100'

и все связанные с NASDAQ link 3

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

Пожалуйста, обратитесь это old post Я думаю, что это поможет,

Update:

Чтобы узнать подробные сведения об объеме и других деталях, Я создал 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 

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

+0

Большое спасибо за ваш ответ. Но мне нужны данные в реальном времени в json вместе с проданным томом, есть ли какие-либо услуги по отдыху? –

+1

Пожалуйста, обратитесь к этому вопросу для получения подробных сведений о реальном времени, как правило, эти ссылки предоставляют данные reatime с некоторым исключением .. https://www.google.com/googlefinance/disclaimer/#realtime – MarmiK

+0

Спасибо еще раз, что это было очень полезно, но все же как я могу получить информацию о томе? –

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> 
+3

Это не работает сейчас .. Любой другой API для этого? –

7

Edit: вызов апи был удален Google. поэтому он больше не функционирует.

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

Установите 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-finance, но они задерживаются на 15 минут для акций NYSE и NASDAQ.

+0

приятно в реальном времени, чего я искал! – eusoubrasileiro

0

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

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

+0

Или .... просто используйте finance.google.com? – hd1