有没有一种方法可以从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()

10-05 21:09
查看更多