Of course, you all know the answer, and it's easy, but I'm new to python :)
I found a piece of code on the Internet reading stock price from yahoo finance.
#! / usr / bin / env python
#
# Copyright (c) 2007-2008, Corey Goldberg ( corey@goldb.org )
#
# license: GNU LGPL
#
# This library is free software; you can redistribute it and / or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
import urllib
"" "
This is the "ystockquote" module.
This module provides a Python API for retrieving stock data from Yahoo Finance.
sample usage:
>>> import ystockquote
>>> print ystockquote.get_price ('GOOG')
529.46
"" "
def __request (symbol, stat):
url = 'http://finance.yahoo.com/d/quotes.csv?s=%s&f=%s'% (symbol, stat)
return urllib.urlopen (url) .read (). strip (). strip ('"')
def get_all (symbol):
"" "
Get all available quote data for the given ticker symbol.
Returns a dictionary.
"" "
values ββ= __request (symbol, 'l1c1va2xj1b4j4dyekjm3m4rr5p5p6s7'). split (',')
data = {}
data ['price'] = values ββ[0]
data ['change'] = values ββ[1]
data ['volume'] = values ββ[2]
data ['avg_daily_volume'] = values ββ[3]
data ['stock_exchange'] = values ββ[4]
data ['market_cap'] = values ββ[5]
data ['book_value'] = values ββ[6]
data ['ebitda'] = values ββ[7]
data ['dividend_per_share'] = values ββ[8]
data ['dividend_yield'] = values ββ[9]
data ['earnings_per_share'] = values ββ[10]
data ['52_week_high'] = values ββ[11]
data ['52_week_low'] = values ββ[12]
data ['50day_moving_avg'] = values ββ[13]
data ['200day_moving_avg'] = values ββ[14]
data ['price_earnings_ratio'] = values ββ[15]
data ['price_earnings_growth_ratio'] = values ββ[16]
data ['price_sales_ratio'] = values ββ[17]
data ['price_book_ratio'] = values ββ[18]
data ['short_ratio'] = values ββ[19]
return data
def get_price (symbol):
return __request (symbol, 'l1')
def get_change (symbol):
return __request (symbol, 'c1')
def get_volume (symbol):
return __request (symbol, 'v')
def get_avg_daily_volume (symbol):
return __request (symbol, 'a2')
def get_stock_exchange (symbol):
return __request (symbol, 'x')
def get_market_cap (symbol):
return __request (symbol, 'j1')
def get_book_value (symbol):
return __request (symbol, 'b4')
def get_ebitda (symbol):
return __request (symbol, 'j4')
def get_dividend_per_share (symbol):
return __request (symbol, 'd')
def get_dividend_yield (symbol):
return __request (symbol, 'y')
def get_earnings_per_share (symbol):
return __request (symbol, 'e')
def get_52_week_high (symbol):
return __request (symbol, 'k')
def get_52_week_low (symbol):
return __request (symbol, 'j')
def get_50day_moving_avg (symbol):
return __request (symbol, 'm3')
def get_200day_moving_avg (symbol):
return __request (symbol, 'm4')
def get_price_earnings_ratio (symbol):
return __request (symbol, 'r')
def get_price_earnings_growth_ratio (symbol):
return __request (symbol, 'r5')
def get_price_sales_ratio (symbol):
return __request (symbol, 'p5')
def get_price_book_ratio (symbol):
return __request (symbol, 'p6')
def get_short_ratio (symbol):
return __request (symbol, 's7')
def get_historical_prices (symbol, start_date, end_date):
"" "
Get historical prices for the given ticker symbol.
Date format is 'YYYYMMDD'
Returns a nested list.
"" "
url = 'http://ichart.yahoo.com/table.csv?s=%s&'% symbol + \
'd =% s &'% str (int (end_date [4: 6]) - 1) + \
'e =% s &'% str (int (end_date [6: 8])) + \
'f =% s &'% str (int (end_date [0: 4])) + \
'g = d &' + \
'a =% s &'% str (int (start_date [4: 6]) - 1) + \
'b =% s &'% str (int (start_date [6: 8])) + \
'c =% s &'% str (int (start_date [0: 4])) + \
'ignore = .csv'
days = urllib.urlopen (url) .readlines ()
data = [day [: - 2] .split (',') for day in days]
return data
How to install this module to use commands? I am using Windows 7 and Python 3.xx.
Thank you so much!
Kurt
source
share