Google Finans API'sini kullanarak hisse senedi fiyatlarını nasıl alabilirim?


119

Google hizmetlerinden finansal verilere erişim arıyorum.

Microsoft'un stok verilerini alan bu URL'yi buldum .

Google'ın bu tür bir HTTP isteği için izin verdiği tüm olası parametreler nelerdir? Alabildiğim tüm farklı bilgileri görmek isterim.


36
Bu URL'yi nasıl buldunuz?
timmyc

2
Basit ve REST tabanlı YQL ile Google Finans verilerini kolayca alabilirsiniz. Burada bir örnek bulunabilir: jarloo.com/google-finance-and-yql
Kelly

Bu harika bir soru, güncel olan başka cevaplar var mı?
NickO

1
@ Timmyc- client=igParametre, bunun bir iGoogle widget'ı için kullanıldığına / kullanıldığına inanmamı sağlıyor. Yine de sadece bir tahmin.
dana

Yanıtlar:


40

Portföyleri yönetmek için tam bir API var. * Bağlantı kaldırıldı. Google artık bunun için bir geliştirici API'si sağlamamaktadır.

Hisse senedi fiyatları almak biraz daha zordur. Birinin Google E-Tablolar'ı kullanarak hisse senedi fiyatlarını aldığı bir makale buldum.

Gadget'ları da kullanabilirsiniz, ancak sanırım peşinde olduğunuz bu değil.

Bahsettiğiniz API ilginç ancak belgelenmemiş gibi görünüyor (zaten bulabildiğim kadarıyla).

İşte sadece referans olması için geçmiş fiyatlar hakkında bazı bilgiler .


5
REST tabanlı olduğundan ve kimlik doğrulaması gerektirmediğinden, hisse senedi bilgilerini çok daha kolay almak için kullanabileceğiniz google'dan belgelenmemiş bir API vardır. İşte bir C # örneği jarloo.com/google-stock-api
Kelly

24
Not: Google Finans API, 26 Mayıs 2011 itibarıyla resmi olarak kullanımdan kaldırılmıştır ve 20 Ekim 2012 tarihinde kapatılacaktır.
shawnwall

Bu cevap çoğunlukla konu dışıdır. Aşağıdaki cevap doğru olanıdır.
Dan Dascalescu

74

1
Bu beni tam olarak aradığım şeye götürdü! Teşekkürler.
Grizzly Peak Software

Ancak bu URL üzerinden işlem gören hacmi alamıyorum, hacim ayrıntılarına da ihtiyacım olursa bana yardım edebilir misin
Sashi Kant

@DanDascalescu Teşekkürler Dan. Görünüşe göre ben kontrol ederken aşağıdaydı. Yorum silindi.
jpgeek

2
Teşekkürler, Eylül 2016'da bugün hala geçerli
CleanBold

5
Eylül 2017 itibarıyla bu bağlantıların 404ing olduğunu söylediğim için üzgünüm.
St. John Johnson

17

Bu siteyi faydalı buldum.

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

Bir API yahoo'ya bağlanıyor gibi görünüyor ki bu çok basit ve kullanışlı.

Örneğin:

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

Tüm ayrıntılar burada:

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


Yahoo'da bunu curl kullanarak elde etmek için curl -L "http://finance.yahoo.com/d/quotes.csv?s=msft&f=sl1d1t1c1ohgv&e=.csv". Kıvrılma olarak -Lişe yaramaz aksi gereklidir
arulraj.net

9

Düzenleme: API araması google tarafından kaldırılmıştır. bu yüzden artık çalışmıyor.

Pareshkumar'ın cevabına katılıyorum. Şimdi url çağrısı için bir python sarmalayıcı googlefinance var .

Googlefinance'ı yükleyin

$pip install googlefinance

Güncel hisse senedi fiyatını almak kolaydır:

>>> 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 finans, gerçek zamanlı stok verileri sağlayan bir kaynaktır. Yahoo'dan yahoo-finans gibi başka API'ler de var , ancak NYSE ve NASDAQ hisse senetleri için 15 dakika gecikiyorlar.


güzel gerçek zamanlı, aradığım şey!
eusoubrasileiro


3

Devlerin omuzlarına dayanarak ... İşte Google'ın tüm mevcut hisse senedi verilerini yerel Bash kabuğu değişkenlerine zaplamak için yazdığım tek satırlık bir program:

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"

O zaman, $ GF_last $ GF_open $ GF_volume gibi değişkenlere kolayca ulaşabilirsiniz. Env'yi çalıştırın veya /tmp/stockprice.tmp.log'un içine bakın

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.

Dolayısıyla stock="FBM" /tmp/stockprice.tmp.log için (ve ortamınız) şunları içerecektir:

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"; 

Gerçek Zamanlı hisse senedi fiyatı için URL'yi kullanabilir miyim?
Sashi Kant

Çoğunlukla evet. Karşılaştırma GF_trade_time_utcşimdiki zaman / tarih ve hakim olmak.
Marcos

Cevabınız için teşekkürler, ancak burada hacim json'da gelmiyor, hacmi takas etmenin başka bir yolu veya URL'si var mı?
Sashi Kant


3

Yahoo ve Google verileriyle ilgili sorun, ticari kullanım için kullanıyorsanız hizmet şartlarını ihlal etmesidir. Siteniz / uygulamanız hala küçükken çok önemli değil, ancak biraz büyür büyümez durmaya başlar ve değiş tokuşlardan vazgeçersiniz. Lisanslı bir çözüm örneği, FinancialContent'tir: http://www.financialcontent.com/json.php veya Xignite


2

İşte kullanabileceğiniz bir örnek. Havent henüz Google Finans'ı aldı, ancak İşte Yahoo Örneği. HTMLAgilityPack'e ihtiyacınız olacak , ki bu harika. Mutlu Sembol Avcılık.

Prosedürü kullanarak arayın YahooStockRequest(string Symbols);

Semboller = virgülle ayrılmış bir sembol dizisi veya sadece bir sembol

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

Açıkladığınız gibi en basit yol, bu bağlantı 'Dow Jones Endüstriyel Ortalama' içindir.

Bağlantı 2 'NASDAQ-100' içindir

ve NASDAQ link 3 ile ilgili her şey için

Bence bu olmalı, yoksa JSON gösterimlerinde Microsoft ile aynı olmasını istiyorsun

Lütfen bu eski gönderiye bakın , bunun yardımcı olacağını düşünüyorum,

Güncelleme:

Birimin ayrıntılarını ve diğer ayrıntıları bilmek için, bağlantıdan ayrıntıları almak için IE nesnesini kullanan ve belirli bir kimlikteki içeriği uyaran bir vbscript oluşturdum (Bir .vbs dosyası oluşturun ve çalıştırın ..

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

bu, aşağıdaki gibi sayfadaki değerleri uyarır

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

Eminim bu yardımcı olacaktır ..


Cevaplarınız için teşekkürler. Ancak işlem hacmi ile birlikte json'daki gerçek zamanlı verilere ihtiyacım var, herhangi bir dinlenme hizmeti var mı?
Sashi Kant

1
Lütfen gerçek zamanlı ayrıntılar için buna bakın, genellikle bu bağlantılar bazı istisnalar dışında gerçek zamanlı veriler sağlar .. google.com/googlefinance/disclaimer/#realtime
MarmiK

Bir kez daha teşekkürler kardeşim, Bu gerçekten yardımcı oldu, ama yine de hacim bilgisini nasıl alabilirim?
Sashi Kant

1
Sayfadaki ( google.com/… ) VBA veya VBS'nin farkındaysanız , öğenin kimliği 'market-data-div'dir, div 2 daha fazla div içerir ve ikinci div'de bunun <td class="val">759.30M</td>gibi hacmi içeren tablo vardır . Daha fazla yardım istiyorsanız, lütfen çalışmanızın bir kodunu gönderin, yoksa keman işe yarar.
MarmiK

Hayır Efendim, VBA veya VBS hakkında herhangi bir fikriniz yok, ancak bunu kesinlikle kontrol edeceksiniz, Bana gerçek zamanlı hisse senedi fiyatının yanı sıra hacim bilgisiyle sonuçlanan URL'yi sağlayabilir misiniz?
Sashi Kant


1

Şununla deneyin: http://finance.google.com/finance/info?client=ig&q=NASDAQ:GOOGL

Söz konusu hisse senedi ile ilgili tüm mevcut ayrıntıları size geri verecektir.

örneğin dışarı koymak aşağıdaki gibi görünecektir:

// [ {
"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"
}
]

Ayrıntılarını almak için bu URL'nin sonunda şirket hisse senedi sembolünüz olabilir:

http://finance.google.com/finance/info?client=ig&q=<YOUR COMPANY STOCK SYMBOL>

0

Google'ın finansal veri API'sini kullanarak grafik verilerini bulmak için, bir arama terimi arıyormuş gibi Google'a gitmeniz, arama motoruna finans yazmanız yeterlidir; Google finans bağlantısı görünecektir. Google finans arama motoruna girdikten sonra, hisse senedi adını finansal veri API motoruna yazın, sonuç görüntülenecektir. Bununla birlikte, tüm Google finans çizelgelerinin 15 dakika geciktiği ve en fazla, cari fiyattan ziyade biletin geçmiş geçmişini daha iyi anlamak için kullanılabileceği unutulmamalıdır.

Gecikmeli grafik bilgilerine bir çözüm, gerçek zamanlı bir finansal veri API'si elde etmektir. Bunun bir örneği, gerçek zamanlı teklif bilgilerine sahip barchartondemand arayüzü ve aradığınız tam grafiği bulmayı kolaylaştıran diğer ayrıntılı özellikler olabilir. Tamamen özelleştirilebilir özellikler ve ihtiyaç duyduğunuz kesin ticaret bilgileri için özel programlama araçlarıyla barchartondemand'ın araçları, Google finansmanını büyük bir farkla geride bırakır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.