ฉันจะรับราคาหุ้นโดยใช้ Google Finance API ได้อย่างไร


119

ฉันต้องการเข้าถึงข้อมูลทางการเงินจากบริการของ Google

ฉันพบURL นี้ที่รับข้อมูลหุ้นของ Microsoft

พารามิเตอร์ที่เป็นไปได้ทั้งหมดที่ Google อนุญาตสำหรับคำขอ HTTP ประเภทนี้คืออะไร ฉันต้องการดูข้อมูลต่างๆที่จะได้รับ


36
คุณพบ URL นั้นได้อย่างไร
timmyc

2
คุณสามารถรับข้อมูล Google Finance ได้อย่างง่ายดายผ่าน YQL ซึ่งง่ายและอิงจาก REST ดูตัวอย่างได้ที่นี่jarloo.com/google-finance-and-yql
Kelly

นี่เป็นคำถามที่ดีมีคำตอบเพิ่มเติมที่เป็นปัจจุบันหรือไม่?
NickO

1
@ Timmyc- client=igพารามิเตอร์ทำให้ฉันเชื่อว่านี่คือ / ถูกใช้สำหรับวิดเจ็ต iGoogle แค่เดาว่า
dana

โปรดทราบว่าถ้าใบสมัครของคุณสำหรับการบริโภคของประชาชนโดยใช้ Google Finance API ผิดเงื่อนไขการให้บริการของ @timmyc: &clientพารามิเตอร์ไม่จำเป็น Finance.google.com/finance/info?q=NASDAQ%3aMSFT ใช้งานได้
Dan Dascalescu

คำตอบ:


40

มี API ทั้งหมดสำหรับจัดการพอร์ตการลงทุน * ลิงก์ถูกลบ Google ไม่มี API สำหรับนักพัฒนาสำหรับสิ่งนี้อีกต่อไป

การรับราคาหุ้นนั้นยากกว่าเล็กน้อย ฉันพบบทความหนึ่งที่มีคนเสนอราคาหุ้นโดยใช้ Google สเปรดชีต

คุณยังสามารถใช้แกดเจ็ตได้แต่ฉันเดาว่านั่นไม่ใช่สิ่งที่คุณต้องการ

API ที่คุณพูดถึงนั้นน่าสนใจ แต่ดูเหมือนจะไม่ได้รับการบันทึกไว้ (เท่าที่ฉันหาได้)

นี่คือข้อมูลบางส่วนเกี่ยวกับราคาในอดีตเพื่อประโยชน์ในการอ้างอิงเท่านั้น


5
มี API ที่ไม่มีเอกสารจาก Google ที่คุณสามารถใช้เพื่อรับข้อมูลหุ้นได้ง่ายขึ้นมากเนื่องจากใช้ REST และไม่ต้องมีการตรวจสอบสิทธิ์ นี่คือตัวอย่าง C # jarloo.com/google-stock-api
Kelly

24
หมายเหตุ: Google Finance API ได้เลิกใช้งานอย่างเป็นทางการเมื่อวันที่ 26 พฤษภาคม 2554 และจะปิดตัวลงในวันที่ 20 ตุลาคม 2555
shawnwall

คำตอบนี้ส่วนใหญ่ไม่ตรงประเด็น คำตอบด้านล่างคือคำตอบที่ถูกต้อง
Dan Dascalescu

74

Gadget Google Finance APIได้รับอย่างเป็นทางการเลิกตั้งแต่ตุลาคม 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/ ข้อมูล? ลูกค้า = ig & q = AAPL, YHOO

คุณยังสามารถรับแผนภูมิได้ที่https://www.google.com/finance/getchart?q=YELP

โปรดทราบว่าถ้าใบสมัครของคุณสำหรับการบริโภคของประชาชนโดยใช้ Google Finance API ผิดเงื่อนไขการให้บริการของ

ตรวจสอบgoogle-finance-get-stock-quote-realtimeสำหรับโค้ดที่สมบูรณ์ใน python


1
สิ่งนี้นำฉันไปสู่สิ่งที่ฉันกำลังมองหา! ขอบคุณ
Grizzly Peak Software

แต่ฉันไม่สามารถรับปริมาณการซื้อขายผ่าน URL นี้คุณช่วยฉันได้ไหมถ้าฉันต้องการรายละเอียดปริมาณด้วย
Sashi Kant

@DanDascalescu ขอบคุณแดน ดูเหมือนว่าจะเพิ่งลงเมื่อฉันตรวจสอบ ลบความคิดเห็นแล้ว
jpgeek

2
ขอบคุณวันนี้ยังคงมีความเกี่ยวข้องในเดือนกันยายน 2016
CleanBold

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


ใน yahoo curl -L "http://finance.yahoo.com/d/quotes.csv?s=msft&f=sl1d1t1c1ohgv&e=.csv"เพื่อให้ได้ว่าการใช้ขด ในขด-Lเป็นสิ่งจำเป็นมิฉะนั้นจะไม่ทำงาน
arulraj.net

9

แก้ไข: การโทร api ถูกลบโดย Google ดังนั้นจึงไม่ทำงานอีกต่อไป

เห็นด้วยกับคำตอบของ Pareshkumar ตอนนี้มีgooglefinance wrapper 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 Finance เป็นแหล่งที่ให้ข้อมูลหุ้นแบบเรียลไทม์ นอกจากนี้ยังมี API อื่น ๆ จาก yahoo เช่นyahoo-financeแต่จะล่าช้าไป 15 นาทีสำหรับหุ้น NYSE และ NASDAQ


เวลาจริงที่ดีสิ่งที่ฉันกำลังมองหา!
eusoubrasileiro

3

เอกสาร Google Finance API อาจเป็นเรื่องที่น่าสนใจมีส่วนที่ให้รายละเอียดเกี่ยวกับวิธีการเข้าถึงพารามิเตอร์ต่างๆผ่าน JavaScriptส่วนรายละเอียดวิธีการเข้าถึงพารามิเตอร์ที่แตกต่างผ่านทางจาวาสคริปต์

ฉันคิดว่า JavaScript API อาจเป็นตัวห่อของคำขอ JSON ที่คุณกล่าวถึงข้างต้น ... บางทีคุณอาจตรวจสอบได้ว่าคำขอ HTTP ใดถูกส่งไป


3

สร้างขึ้นบนไหล่ของยักษ์ ... นี่คือหนึ่งซับที่ฉันเขียนเพื่อรวบรวมข้อมูลหุ้นปัจจุบันทั้งหมดของ Google ลงในตัวแปร Bash shell ในพื้นที่:

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

ฉันสามารถใช้ URL สำหรับการเสนอราคาหุ้นแบบเรียลไทม์ได้หรือไม่
Sashi Kant

ส่วนใหญ่ใช่ เปรียบเทียบGF_trade_time_utcกับเวลา / วันที่ปัจจุบันและคุณเป็นผู้ตัดสิน
Marcos

ขอบคุณสำหรับคำตอบ แต่ที่นี่ปริมาณไม่มาใน json มีวิธีอื่นหรือ URL ในการรับปริมาณการซื้อขายหรือไม่?
Sashi Kant

3

นี่ไม่ใช่ API ที่ใช้งานได้สำหรับ Google อีกต่อไปคุณสามารถลองใช้ Xignite ได้แม้ว่าจะเรียกเก็บเงินจาก: http://www.xignite.com


1
คุณมีประสบการณ์ในการใช้บริการของพวกเขาหรือไม่? พวกเขาคิดค่าบริการเท่าไร?
Zorayr

3

ปัญหาเกี่ยวกับข้อมูล Yahoo และ Google คือละเมิดข้อกำหนดในการให้บริการหากคุณใช้เพื่อการค้า เมื่อไซต์ / แอปของคุณยังเล็กอยู่ก็ไม่ใช่เรื่องใหญ่ แต่ทันทีที่คุณเติบโตขึ้นเล็กน้อยคุณก็เริ่มหยุดและเลิกจากการแลกเปลี่ยน ตัวอย่างโซลูชันที่ได้รับอนุญาตคือ FinancialContent: http://www.financialcontent.com/json.php หรือXignite


2

นี่คือตัวอย่างที่คุณสามารถใช้ได้ ยังไม่มี Google Finance แต่นี่คือตัวอย่าง Yahoo คุณจะต้องใช้HTMLAgilityPackซึ่งยอดเยี่ยมมาก การล่าสัตว์สัญลักษณ์แห่งความสุข

เรียกขั้นตอนโดยใช้ YahooStockRequest(string Symbols);

โดยที่ 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

วิธีที่ง่ายที่สุดตามที่คุณได้อธิบายไว้คือลิงค์นี้สำหรับ 'Dow Jones Industrial Average'

ลิงก์ 2 ใช้สำหรับ 'NASDAQ-100'

และสำหรับทุกคนที่เกี่ยวข้องกับลิงค์ NASDAQ 3

ฉันคิดว่ามันควรจะเป็นอย่างอื่นที่คุณต้องการในรูปแบบ JSON เช่นเดียวกับ Microsoft

โปรดอ้างอิงโพสต์เก่านี้ฉันคิดว่าจะช่วยได้

ปรับปรุง:

หากต้องการทราบรายละเอียดของไดรฟ์ข้อมูลและรายละเอียดอื่น ๆ ฉันได้สร้าง vbscript ที่ใช้อ็อบเจ็กต์ IE เพื่อดึงรายละเอียดจากลิงค์และแจ้งเตือนเนื้อหาใน id เฉพาะ (สร้างไฟล์. 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

ฉันมั่นใจว่านี่จะช่วยได้ ..


ขอบคุณมากสำหรับคำตอบของคุณ แต่ฉันต้องการข้อมูลเรียลไทม์ใน json พร้อมกับปริมาณการซื้อขายมีบริการที่เหลือหรือไม่?
Sashi Kant

1
โปรดดูรายละเอียดเกี่ยวกับเรียลไทม์โดยทั่วไปลิงก์นี้จะให้ข้อมูล reatime โดยมีข้อยกเว้นบางประการ .. google.com/googlefinance/disclaimer/#realtime
MarmiK

ขอบคุณอีกครั้งครับอันนี้มีประโยชน์มาก แต่ฉันจะรับข้อมูลปริมาณได้อย่างไร
Sashi Kant

1
ถ้าคุณทราบ VBA หรือ VBS ในหน้า ( google.com/… ) id ขององค์ประกอบคือ 'market-data-div' ซึ่ง div มี 2 div เพิ่มเติมและ div ที่สองมีตารางที่มี volume <td class="val">759.30M</td>แบบนี้ หากต้องการความช่วยเหลือเพิ่มเติมโปรดโพสต์รหัสงานของคุณหรือซอจะทำ
MarmiK

ไม่เซอร์ไม่มีความคิดเกี่ยวกับ VBA หรือ VBS แต่จะตรวจสอบสิ่งนี้อย่างแน่นอนคุณช่วยระบุ URL ให้ฉันได้ไหมซึ่งส่งผลให้ราคาหุ้นแบบเรียลไทม์พร้อมกับข้อมูลปริมาณ
Sashi Kant


1

ลองใช้สิ่งนี้: http://finance.google.com/finance/info?client=ig&q=NASDAQ:GOOGL

มันจะส่งคืนรายละเอียดทั้งหมดที่มีอยู่เกี่ยวกับสต็อกดังกล่าว

เช่น out put จะมีลักษณะดังนี้:

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

0

ในการค้นหาข้อมูลแผนภูมิโดยใช้ API ข้อมูลทางการเงินของ Google เราต้องไปที่ Google เพื่อค้นหาข้อความค้นหาพิมพ์การเงินในเครื่องมือค้นหาและลิงก์ไปยัง Google Finance จะปรากฏขึ้น เมื่ออยู่ที่เครื่องมือค้นหาการเงินของ Google ให้พิมพ์ชื่อย่อหลักทรัพย์ลงในเครื่องมือ API ข้อมูลทางการเงินจากนั้นผลลัพธ์จะปรากฏขึ้น อย่างไรก็ตามควรสังเกตว่าแผนภูมิการเงินของ Google ทั้งหมดล่าช้า 15 นาทีและส่วนใหญ่สามารถใช้เพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับประวัติในอดีตของทิกเกอร์แทนที่จะเป็นราคาปัจจุบัน

วิธีแก้ไขข้อมูลแผนภูมิล่าช้าคือการขอรับ API ข้อมูลทางการเงินแบบเรียลไทม์ ตัวอย่างหนึ่งคืออินเทอร์เฟซ barchartondemand ที่มีข้อมูลใบเสนอราคาแบบเรียลไทม์พร้อมกับคุณสมบัติโดยละเอียดอื่น ๆ ที่ช่วยให้ค้นหาแผนภูมิที่ต้องการได้ง่ายขึ้น ด้วยคุณสมบัติที่ปรับแต่งได้อย่างเต็มที่และเครื่องมือการเขียนโปรแกรมเฉพาะสำหรับข้อมูลการซื้อขายที่แม่นยำที่คุณต้องการเครื่องมือของ barchartondemand จึงเอาชนะการเงินของ Google ได้อย่างมาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.