8

我正在使用谷歌财经API获取股票报价和显示在我的网站上的内容。突然从2017年9月6日起停止工作。我用来获得股票报价的网址是https://finance.google.com/finance/info?client=ig&q=SYMBOL&callback=谷歌金融API不工作从2017年9月6日

此前,我使用的是雅虎财务API,它不一致。所以,我切换到谷歌财务API。

你能帮我解决吗?

感谢, 拉姆

+0

谷歌金融API在2012年宣布关闭...... – Salketer

+0

HI Salketer,感谢您的回复。直到上周,我才能够获取数据,只有这个星期我面临这个问题。 –

+1

https://finance.google.com/finance?output=json&q=TICKER_SYMBOL => https://stackoverflow.com/questions/46080632/http-error-404-from-googlefinance-in-python-2-7/46081537#46081537 – aldwinaldwin

回答

2

最后我开始使用雅虎财务。数据不存在,有20分钟的延迟。我认为这对面临像我这样的问题的人会有所帮助。

雅虎API网址是https://query.yahooapis.com/v1/public/yql?q=select%20 *%20from%20yahoo.finance.quotes%20where%20symbol%3D%22MSFT%22 & ENV =店://datatables.org/alltableswithkeys

这将返回股票数据以xml格式。你可以解析XML来获得你想要的领域。

感谢, 拉姆

+0

我不认为它支持印度股票,是吗? –

0

我快要死去寻找线索像这样昨天,当我面对的问题!

就像Salketer所说,Google Finance API在2012年正式“关闭”。但由于某种原因,它仍然在2017年9月5日前运行。我构建了一个程序来管理我的投资组合,它使用GF API获取实时报价为美股。它在2017年9月6日停止了工作,所以我假设现在“暗中提供”API的工程师实际上“停止了该服务。

我发现了一个替代https://www.alphavantage.co/documentation/,这似乎是免费实时美国股票报价的最佳选择。他们只需要你的电子邮件,没有别的。它有点慢,因为它还没有多符号查询,但乞丐不能是选择器。

+0

您提供的链接非常有用,我今天将不得不测试它。它提供实时数据吗? –

+0

Google财经将提供的实时数据。一些市场如OTC或TSE有15分钟的延迟。有一点需要注意的是,他们只需几分钟而不是几秒钟。 –

0

我不得不使用雅虎财务长一段时间的Verizon收购雅虎今年五月,结束了免费的API服务后,后转用谷歌金融。我回去重新研究了这个问题,并且有人创建了一个新的雅虎财务API调用,它可以与新的雅虎API一起使用。 https://stackoverflow.com/a/44092983/8316350

Python源代码和安装程序可以在这里找到:https://github.com/c0redumb/yahoo_quote_download

的参数是(股票,起始日期,日期和结束日期),其中日期是YYYYMMDD格式,并返回Unicode字符串列表。下面的测试将下载了几个星期的数据,然后只提取调整收盘价返回一个列表称为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) 

返回:

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'] 
0

我手动从谷歌财经页面阅读每个股票之前我得到了?info链接。由于这不起作用,我将回到网页。

这里是我的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%)']) 
0

我们有一个同样的问题&我们发现低于微软Bing API为股市提供了替代的API。在API下面以JSON格式返回股票数据。

https://finance.services.appex.bing.com/Market.svc/ChartAndQuotes?symbols=139.1.500209.BOM&chartType=1d&isETF=false&iseod=False&lang=en-IN&isCS=false&isVol=true

谢谢,Shyamal

+0

虽然此链接可能回答问题,但最好在此处包含答案的重要部分并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 - [来自评论](/评论/低质量/职位/ 17319504) – Surya

+0

你知道如何获得ohlc格式,以及如何选择时间段(不像1d,1m等分辨率) –

相关问题