Làm cách nào để nhận báo giá cổ phiếu bằng Google Finance API?


119

Tôi đang tìm kiếm quyền truy cập vào dữ liệu tài chính từ các dịch vụ của Google.

Tôi đã tìm thấy URL này lấy dữ liệu chứng khoán cho Microsoft.

Tất cả các tham số có thể có mà Google cho phép đối với loại yêu cầu HTTP này là gì? Tôi muốn xem tất cả các thông tin khác nhau mà tôi có thể nhận được.


36
Làm thế nào bạn tìm thấy URL đó?
timmyc

2
Bạn có thể dễ dàng lấy dữ liệu Google Finance qua YQL, dữ liệu này đơn giản và dựa trên REST. Một ví dụ có thể được tìm thấy ở đây: jarloo.com/google-finance-and-yql
Kelly

Đây là một câu hỏi tuyệt vời, có nhiều câu trả lời được cập nhật không?
NickO

1
@ Timmyc- client=igTham số khiến tôi tin rằng đây là / đã được sử dụng cho một tiện ích iGoogle. Chỉ là phỏng đoán thôi.
dana

Câu trả lời:


40

Có một API toàn bộ để quản lý danh mục đầu tư. * Đã xóa liên kết. Google không còn cung cấp API nhà phát triển cho việc này nữa.

Nhận báo giá cổ phiếu khó hơn một chút. Tôi đã tìm thấy một bài báo mà ai đó đã nhận báo giá cổ phiếu bằng Google Spreadsheets.

Bạn cũng có thể sử dụng các tiện ích nhưng tôi đoán đó không phải là thứ bạn đang theo đuổi.

API bạn đề cập rất thú vị nhưng dường như không được ghi lại bằng tài liệu (theo như tôi vẫn có thể tìm thấy).

Đây là một số thông tin về giá lịch sử , chỉ để tham khảo.


5
Có một API không có giấy tờ từ google mà bạn có thể sử dụng để lấy thông tin về kho hàng dễ dàng hơn nhiều vì nó dựa trên REST và không yêu cầu xác thực. Đây là ví dụ C # jarloo.com/google-stock-api
Kelly

24
Lưu ý: API Google Finance đã chính thức không được dùng nữa kể từ ngày 26 tháng 5 năm 2011 và sẽ ngừng hoạt động vào ngày 20 tháng 10 năm 2012.
shawnwall

Câu trả lời này chủ yếu là lạc đề. Câu trả lời bên dưới nó là một trong những chính xác.
Dan Dascalescu

74

1
Điều này đã dẫn tôi đến chính xác những gì tôi đang tìm kiếm! Cảm ơn.
Phần mềm Grizzly Peak

Nhưng tôi có thể không nhận được khối lượng giao dịch thông qua URL này, có thể bạn giúp tôi ra, nếu tôi cần các chi tiết khối lượng quá
Sashi Kant

@DanDascalescu Cảm ơn Dan. Có vẻ như nó vừa bị rơi khi tôi kiểm tra nó. Bình luận đã bị xóa.
jpgeek

2
Cảm ơn, ngày hôm nay vẫn còn phù hợp vào tháng 9 năm 2016
CleanBold

5
Tôi rất buồn khi nói rằng kể từ tháng 9 năm 2017, những liên kết đó đang hoạt động 404.
St. John Johnson

17

Tôi thấy trang web này hữu ích.

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

Nó liên kết đến một API yahoo dường như cung cấp rất đơn giản và hữu ích.

Ví dụ:

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

Chi tiết đầy đủ tại đây:

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


Trong yahoo để có được điều đó bằng cách sử dụng curl curl -L "http://finance.yahoo.com/d/quotes.csv?s=msft&f=sl1d1t1c1ohgv&e=.csv". Trong cuộn -Llà cần thiết nếu không nó sẽ không hoạt động
arulraj.net

9

Chỉnh sửa: lệnh gọi api đã bị google xóa. vì vậy nó không còn hoạt động.

Đồng ý với câu trả lời của Pareshkumar. Bây giờ có một trình bao bọc python googlefinance cho cuộc gọi url.

Cài đặt googlefinance

$pip install googlefinance

Có thể dễ dàng nhận được giá cổ phiếu hiện tại:

>>> 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 là nguồn cung cấp dữ liệu chứng khoán theo thời gian thực. Ngoài ra còn có các API khác từ yahoo, chẳng hạn như yahoo-Finance , nhưng chúng bị trễ 15 phút đối với cổ phiếu NYSE và NASDAQ.


thời gian thực tốt đẹp, những gì tôi đang tìm kiếm!
eusoubrasileiro


3

Xây dựng dựa trên vai của những người khổng lồ ... đây là một bản tóm tắt mà tôi đã viết để tổng hợp tất cả dữ liệu chứng khoán hiện tại của Google thành các biến Bash shell cục bộ:

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"

Sau đó, bạn sẽ có sẵn các biến như $ GF_last $ GF_open $ GF_volume, v.v. Chạy env hoặc xem bên trong /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.

Vì vậy, đối với stock="FBM" /tmp/stockprice.tmp.log (và môi trường của bạn) sẽ chứa:

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

Tôi có thể sử dụng URL cho báo giá cổ phiếu Thời gian thực không?
Sashi Kant

Chủ yếu là có. So sánh GF_trade_time_utcvới ngày / giờ hiện tại và bạn là người đánh giá.
Marcos

Cảm ơn câu trả lời của bạn, nhưng ở đây khối lượng không đến nhanh, có cách nào khác hoặc URL để khối lượng được giao dịch không?
Sashi Kant


3

Vấn đề với dữ liệu của Yahoo và Google là nó vi phạm điều khoản dịch vụ nếu bạn đang sử dụng nó cho mục đích thương mại. Khi trang web / ứng dụng của bạn vẫn còn nhỏ, điều đó không phải là vấn đề lớn, nhưng ngay sau khi bạn phát triển một chút, bạn bắt đầu ngừng hoạt động và ngừng trao đổi. Một ví dụ giải pháp được cấp phép là FinancialContent: http://www.financialcontent.com/json.php hoặc Xignite


2

Đây là một ví dụ mà bạn có thể sử dụng. Havent đã có Google Finance, nhưng đây là Ví dụ về Yahoo. Bạn sẽ cần HTMLAgilityPack , Thật tuyệt vời. Săn biểu tượng hạnh phúc.

Gọi thủ tục bằng cách sử dụng YahooStockRequest(string Symbols);

Trong đó Symbols = một chuỗi ký hiệu được phân tách bằng dấu phẩy hoặc chỉ một ký hiệu

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

Cách đơn giản nhất như bạn đã giải thích là liên kết này dành cho 'Trung bình Công nghiệp Dow Jones'

Liên kết 2 dành cho 'NASDAQ-100'

và cho tất cả những gì liên quan đến NASDAQ liên kết 3

Tôi nghĩ điều này nên xảy ra, nếu không bạn muốn ký hiệu JSON giống như Microsoft

Vui lòng tham khảo bài viết cũ này , tôi nghĩ nó sẽ hữu ích,

Cập nhật:

Để biết chi tiết về khối lượng và các chi tiết khác, tôi đã tạo một vbscript đang sử dụng đối tượng IE để tìm nạp thông tin chi tiết từ liên kết và thông báo nội dung trong id cụ thể (Tạo tệp .vbs và chạy 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

điều này sẽ cảnh báo các giá trị từ trang như thế này

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

Tôi chắc chắn điều này sẽ giúp ..


Cảm ơn rất nhiều cho câu trả lời của bạn. Nhưng tôi cần dữ liệu thời gian thực trong json cùng với khối lượng giao dịch, có bất kỳ dịch vụ nghỉ ngơi nào không?
Sashi Kant

1
Vui lòng tham khảo phần này để biết chi tiết về thời gian thực, nói chung các liên kết này cung cấp dữ liệu reatime với một số ngoại lệ .. google.com/googlefinance/disclaimer/#realtime
MarmiK

Một lần nữa cảm ơn người anh em, Điều này thực sự hữu ích, nhưng tôi vẫn làm cách nào để có được thông tin về khối lượng?
Sashi Kant

1
Nếu bạn biết VBA hoặc VBS trên trang ( google.com/… ), id của phần tử là 'market-data-div', div chứa thêm 2 div và div thứ hai có bảng chứa khối lượng <td class="val">759.30M</td>như thế này. Nếu muốn được trợ giúp thêm, vui lòng đăng một số mã công việc của bạn hoặc fiddle sẽ làm.
MarmiK

Không, thưa ông, Tôi không có bất kỳ ý tưởng nào về VBA hoặc VBS, nhưng sẽ kiểm tra điều này một cách chắc chắn, Ông có thể cung cấp cho tôi URL dẫn đến báo giá cổ phiếu theo thời gian thực cùng với thông tin về khối lượng không?
Sashi Kant


1

Hãy thử với cái này: http://finance.google.com/finance/info?client=ig&q=NASDAQ:GOOGL

Nó sẽ trả lại cho bạn tất cả các chi tiết có sẵn về cổ phiếu được đề cập.

ví dụ như đặt ra sẽ trông giống như dưới đây:

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

Bạn có thể có biểu tượng cổ phiếu công ty của mình ở cuối URL này để biết chi tiết:

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

0

Để tìm dữ liệu biểu đồ bằng cách sử dụng API dữ liệu tài chính của Google, người ta chỉ cần vào Google như tìm một cụm từ tìm kiếm, gõ tài chính vào công cụ tìm kiếm và một liên kết đến tài chính Google sẽ xuất hiện. Khi ở công cụ tìm kiếm tài chính Google, hãy nhập tên mã vào công cụ API dữ liệu tài chính và kết quả sẽ được hiển thị. Tuy nhiên, cần lưu ý rằng tất cả các biểu đồ tài chính của Google đều bị trễ 15 phút và nhiều nhất có thể được sử dụng để hiểu rõ hơn về lịch sử quá khứ của cổ phiếu, thay vì giá hiện tại.

Giải pháp cho thông tin biểu đồ bị trễ là lấy API dữ liệu tài chính theo thời gian thực. Ví dụ về một ví dụ sẽ là giao diện barchartondemand có thông tin báo giá thời gian thực, cùng với các tính năng chi tiết khác giúp việc tìm biểu đồ chính xác bạn đang tìm kiếm đơn giản hơn. Với các tính năng hoàn toàn có thể tùy chỉnh và các công cụ lập trình cụ thể để cung cấp thông tin giao dịch chính xác mà bạn cần, các công cụ của barchartondemand vượt trội hơn Google Finance một cách rộng rãi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.