从列表中抓取股票数据

从列表中抓取股票数据

问题描述:

我目前正在研究一个非常基本的程序来获取股票数据并将其复制到.csv文件中。不确定如果我正确使用for x in list,因为我只复制一个股票的数据,而不是列表中每个股票的单独文件。从列表中抓取股票数据

from datetime import date, timedelta 
import urllib 
import os 

enddate = date.today() 
startdate = enddate + timedelta(-30) # last 30 days 
stocks = ["^RUT", "NFLX", "YHOO", "AAPL", "GOOG"] 
for stock in stocks: 
    print stock 

STOCK_URL = 'http://ichart.finance.yahoo.com/table.csv' 
PARAMS = { 
    'a': startdate.month-1, 
    'b': startdate.day, 
    'c': startdate.year, 
    'd': enddate.month-1, 
    'e': enddate.day, 
    'f': enddate.year, 
    'g': 'd', 
    'ignore': '.csv' 
} 

def pulldata(stock, filename): 
    print "Retrieving latest data..." 
    params = PARAMS.copy() 
    params['s'] = stock 
    url = "%s?%s" % (STOCK_URL, urllib.urlencode(params)) 
    return urllib.urlretrieve(url, filename) 
try: 
    folder = os.stat("My Stock Data/") 
except: 
    folder = os.mkdir("My Stock Data/") 
filename, headers = pulldata(stock, "My Stock Data/" + stock + "-data.csv") 
print "Done" 

这正是您的代码的样子吗?

如果是这样,我希望看到打印出的股票名称,然后是GOOG的数据,然后是“完成”。

尝试抓住for循环,将其移动到该呼叫前才pulldata,并缩进该行因此它看起来像

try: 
    folder = os.stat("My Stock Data/") 
except: 
    folder = os.mkdir("My Stock Data/") 

for stock in stocks: 
    print(stock) 
    filename, headers = pulldata(stock, "My Stock Data/" + stock + "-data.csv") 

print("Done")