有没有一种方法可以从Yahoo Finance或Google Finance(csv格式)自动下载股票的历史价格?最好在Python中。
最佳答案
简短的回答:是的。使用Python的urllib提取所需股票的历史数据页面。和Yahoo一起去!金融; Google的可靠性较低,数据覆盖范围较小,并且一旦使用它,对使用方式的限制就更大。另外,我相信Google明确禁止您在其ToS中抓取数据。
更长的答案:这是我用来提取特定公司的所有历史数据的脚本。它将提取特定股票代码的历史数据页面,然后将其保存到该代码命名的csv文件中。您必须提供自己想要的股票代号的列表。
import urllib
base_url = "http://ichart.finance.yahoo.com/table.csv?s="
def make_url(ticker_symbol):
return base_url + ticker_symbol
output_path = "C:/path/to/output/directory"
def make_filename(ticker_symbol, directory="S&P"):
return output_path + "/" + directory + "/" + ticker_symbol + ".csv"
def pull_historical_data(ticker_symbol, directory="S&P"):
try:
urllib.urlretrieve(make_url(ticker_symbol), make_filename(ticker_symbol, directory))
except urllib.ContentTooShortError as e:
outfile = open(make_filename(ticker_symbol, directory), "w")
outfile.write(e.content)
outfile.close()