google 财务 api 从 6/september/2017 开始不工作
google finance api not working from 6/september/2017
我正在使用 google 金融 api 来获取股票报价并在我的网站上显示内容。突然从 6/september/2017 这停止工作。我用来获取股票报价的 url 是 https://finance.google.com/finance/info?client=ig&q=SYMBOL&callback=?.
以前,我使用的是 yahoo finance api,但不一致。所以,我转到 google 金融 api。
你能帮我解决这个问题吗?
谢谢,
拉姆
昨天遇到这个问题时,我非常想找这样的帖子!
正如 Salketer 所说,Google Finance API 于 2012 年正式 "closed"。但是,由于某种原因,它一直工作到 2017 年 9 月 5 日。我构建了一个程序来管理我的投资组合,该投资组合使用 GF API 获取美国股票的实时报价。它于 2017 年 9 月 6 日停止工作,所以我假设 "secretly providing" API 背后的工程师现在 "actually" 停止了服务。
我找到了替代方案 https://www.alphavantage.co/documentation/ ,这似乎是免费实时美国股票报价的最佳替代方案。他们只需要您的电子邮件,没有别的。有点慢,因为它还没有多符号查询,但是乞丐不能选择。
最后我开始使用yahoo finance。数据不是实时的,有 20 分钟的延迟。我认为它会对像我一样面临问题的人有所帮助。
yahoo api url 是 https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%3D%22MSFT%22&env=store://datatables.org/alltableswithkeys
这将return xml 格式的股票数据。您可以解析 xml 以获得所需的字段。
谢谢,
拉姆
在 Verizon 今年 5 月收购雅虎并结束免费 API 服务后,我不得不转用 Google 金融,因为我长期使用 Yahoo 金融。我回去重新研究了这个问题,有人创建了一个新的 Yahoo finance API 调用,可以与新的 yahoo API 一起使用。
python 源代码和安装程序可在此处找到:https://github.com/c0redumb/yahoo_quote_download
参数是 (ticker, start_date, and end_date),其中日期是 yyyymmdd 格式,returns 是一个 unicode 字符串列表。以下测试将下载几周的数据,然后仅将调整后的收盘价提取到 return 一个名为 adj_close:
的列表
from yahoo_quote_download import yqd
import string
quote = yqd.load_yahoo_quote('AAPL', '20170515', '20170530')
print(quote[0]) # print the column headers
print(quote[1]) # print a couple rows of data
print(quote[2]) # just to make sure it looks right
quote.pop() # get rid of blank string at end of data
quote = [row.encode("utf-8") for row in quote] # convert to byte data
quote = [string.split(row, ',') for row in quote] # split the string to create a list of lists
adj_close = [row[5] for row in quote] # grab only the 'adj close' data and put into a new list
print(adj_close)
Returns:
Date,Open,High,Low,Close,Adj Close,Volume
2017-05-15,156.009995,156.649994,155.050003,155.699997,155.090958,26009700
2017-05-16,155.940002,156.059998,154.720001,155.470001,154.861862,20048500
['Adj Close', '155.090958', '154.861862', '149.662277', '151.943314', '152.461288', '153.387650', '153.198395', '152.740189', '153.268112', '153.009140', '153.068893']
在获得 ?info
link 之前,我正在手动阅读每只股票的 Google 财务页面。由于这不再有效,我将返回网页。
这是我的 python 片段:
def get_market_price(symbol):
print "Getting market price: " + symbol
base_url = 'http://finance.google.com/finance?q='
retries = 2
while True:
try:
response = urllib2.urlopen(base_url + symbol)
html = response.read()
except Exception, msg:
if retries > 0:
retries -= 1
else:
raise Exception("Error getting market price!")
soup = BeautifulSoup(html, 'lxml')
try:
price_change = soup.find("div", { "class": "id-price-change" })
price_change = price_change.find("span").find_all("span")
price_change = [x.string for x in price_change]
price = soup.find_all("span", id=re.compile('^ref_.*_l$'))[0].string
price = str(unicode(price).encode('ascii', 'ignore')).strip().replace(",", "")
return (price, price_change)
except Exception as e:
if retries > 0:
retries -= 1
else:
raise Exception("Can't get current rate for scrip: " + symbol)
示例:
Getting market price: NSE:CIPLA
('558.55', [u'+4.70', u'(0.85%)'])
我们遇到了同样的问题,我们在下面找到了 Microsoft Bing API 为股票市场提供的替代方案 API。下面 API returns JSON 格式的股票数据。
谢谢,夏马尔
你可以简单解析这个请求的结果:
https://finance.google.com/finance/getprices?q=GOOG&x=NASD&p=1d&i=60&f=d,c,o,h,l,v
(纳斯达克GOOG,一天,频率60秒,DATE,CLOSE,HIGH,LOW,OPEN,VOLUME)
这个url有效。我认为只是 url 从 www.google.com 更改为 finance.google.com
https://finance.google.com/finance/getprices?q=ACC&x=NSE&p=15&i=300&f=d,c,o,h,l,v
我在 PHP 遇到了同样的问题。
我替换了URLhttps://www.google.com/finance/converter?a=$amount&from=$from_Currency&to=$to_Currency
到
https://finance.google.com/finance/converter?a=1&from=$from_Currency&to=$to_Currency
适合我。
我正在使用 google 金融 api 来获取股票报价并在我的网站上显示内容。突然从 6/september/2017 这停止工作。我用来获取股票报价的 url 是 https://finance.google.com/finance/info?client=ig&q=SYMBOL&callback=?.
以前,我使用的是 yahoo finance api,但不一致。所以,我转到 google 金融 api。
你能帮我解决这个问题吗?
谢谢, 拉姆
昨天遇到这个问题时,我非常想找这样的帖子!
正如 Salketer 所说,Google Finance API 于 2012 年正式 "closed"。但是,由于某种原因,它一直工作到 2017 年 9 月 5 日。我构建了一个程序来管理我的投资组合,该投资组合使用 GF API 获取美国股票的实时报价。它于 2017 年 9 月 6 日停止工作,所以我假设 "secretly providing" API 背后的工程师现在 "actually" 停止了服务。
我找到了替代方案 https://www.alphavantage.co/documentation/ ,这似乎是免费实时美国股票报价的最佳替代方案。他们只需要您的电子邮件,没有别的。有点慢,因为它还没有多符号查询,但是乞丐不能选择。
最后我开始使用yahoo finance。数据不是实时的,有 20 分钟的延迟。我认为它会对像我一样面临问题的人有所帮助。
yahoo api url 是 https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%3D%22MSFT%22&env=store://datatables.org/alltableswithkeys
这将return xml 格式的股票数据。您可以解析 xml 以获得所需的字段。
谢谢, 拉姆
在 Verizon 今年 5 月收购雅虎并结束免费 API 服务后,我不得不转用 Google 金融,因为我长期使用 Yahoo 金融。我回去重新研究了这个问题,有人创建了一个新的 Yahoo finance API 调用,可以与新的 yahoo API 一起使用。
python 源代码和安装程序可在此处找到:https://github.com/c0redumb/yahoo_quote_download
参数是 (ticker, start_date, and end_date),其中日期是 yyyymmdd 格式,returns 是一个 unicode 字符串列表。以下测试将下载几周的数据,然后仅将调整后的收盘价提取到 return 一个名为 adj_close:
的列表from yahoo_quote_download import yqd
import string
quote = yqd.load_yahoo_quote('AAPL', '20170515', '20170530')
print(quote[0]) # print the column headers
print(quote[1]) # print a couple rows of data
print(quote[2]) # just to make sure it looks right
quote.pop() # get rid of blank string at end of data
quote = [row.encode("utf-8") for row in quote] # convert to byte data
quote = [string.split(row, ',') for row in quote] # split the string to create a list of lists
adj_close = [row[5] for row in quote] # grab only the 'adj close' data and put into a new list
print(adj_close)
Returns:
Date,Open,High,Low,Close,Adj Close,Volume
2017-05-15,156.009995,156.649994,155.050003,155.699997,155.090958,26009700
2017-05-16,155.940002,156.059998,154.720001,155.470001,154.861862,20048500
['Adj Close', '155.090958', '154.861862', '149.662277', '151.943314', '152.461288', '153.387650', '153.198395', '152.740189', '153.268112', '153.009140', '153.068893']
在获得 ?info
link 之前,我正在手动阅读每只股票的 Google 财务页面。由于这不再有效,我将返回网页。
这是我的 python 片段:
def get_market_price(symbol):
print "Getting market price: " + symbol
base_url = 'http://finance.google.com/finance?q='
retries = 2
while True:
try:
response = urllib2.urlopen(base_url + symbol)
html = response.read()
except Exception, msg:
if retries > 0:
retries -= 1
else:
raise Exception("Error getting market price!")
soup = BeautifulSoup(html, 'lxml')
try:
price_change = soup.find("div", { "class": "id-price-change" })
price_change = price_change.find("span").find_all("span")
price_change = [x.string for x in price_change]
price = soup.find_all("span", id=re.compile('^ref_.*_l$'))[0].string
price = str(unicode(price).encode('ascii', 'ignore')).strip().replace(",", "")
return (price, price_change)
except Exception as e:
if retries > 0:
retries -= 1
else:
raise Exception("Can't get current rate for scrip: " + symbol)
示例:
Getting market price: NSE:CIPLA
('558.55', [u'+4.70', u'(0.85%)'])
我们遇到了同样的问题,我们在下面找到了 Microsoft Bing API 为股票市场提供的替代方案 API。下面 API returns JSON 格式的股票数据。
谢谢,夏马尔
你可以简单解析这个请求的结果:
https://finance.google.com/finance/getprices?q=GOOG&x=NASD&p=1d&i=60&f=d,c,o,h,l,v
(纳斯达克GOOG,一天,频率60秒,DATE,CLOSE,HIGH,LOW,OPEN,VOLUME)
这个url有效。我认为只是 url 从 www.google.com 更改为 finance.google.com
https://finance.google.com/finance/getprices?q=ACC&x=NSE&p=15&i=300&f=d,c,o,h,l,v
我在 PHP 遇到了同样的问题。
我替换了URLhttps://www.google.com/finance/converter?a=$amount&from=$from_Currency&to=$to_Currency
到
https://finance.google.com/finance/converter?a=1&from=$from_Currency&to=$to_Currency
适合我。