如何在python中创建股票报价获取应用程序

Ale*_*ex 13 python google-finance

我是Python新手编程的新手.

我想创建一个从谷歌财务中获取股票价格的应用程序.一个例子是CSCO (Cisco Sytems).然后我会使用该数据在库存达到某个值时警告用户.它还需要每30秒刷新一次.

问题是我不知道如何获取数据!

有人有主意吗?

Ben*_*ein 16

该模块由Corey Goldberg提供.

程序:

import urllib
import re

def get_quote(symbol):
    base_url = 'http://finance.google.com/finance?q='
    content = urllib.urlopen(base_url + symbol).read()
    m = re.search('id="ref_694653_l".*?>(.*?)<', content)
    if m:
        quote = m.group(1)
    else:
        quote = 'no quote available for: ' + symbol
    return quote
Run Code Online (Sandbox Code Playgroud)

样品用法:

import stockquote
print stockquote.get_quote('goog')
Run Code Online (Sandbox Code Playgroud)

更新:更改了正则表达式以匹配Google财经的最新格式(截至2011年2月23日).这说明了依赖屏幕抓取时的主要问题.

  • @Mysticmonk谷歌阻止通过这种类型的脚本访问查询 (3认同)

hon*_*tao 13

至于现在(2015年),谷歌财务api已被弃用.但你可以使用pypi模块googlefinance.

安装googlefinance

$pip install googlefinance
Run Code Online (Sandbox Code Playgroud)

很容易获得当前股票价格:

>>> 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"
  }
]
Run Code Online (Sandbox Code Playgroud)

Google财经是提供实时股票数据的来源.还有来自雅虎的其他API,例如雅虎融资,但纽约证券交易所和纳斯达克股票的延迟时间为15分钟.

  • `urllib.error.HTTPError: HTTP Error 403: Forbidden` -- 这个模块现在是 toast 了吗? (4认同)