【发布时间】:2020-07-21 01:02:51
【问题描述】:
我用 python 编写了一个脚本来从 Yahoo Finance 下载 csv 文件(每只股票一个),其中包含我感兴趣的各种股票的历史股票数据。然后我使用这些数据进行相关性分析。
在今天多次运行代码的过程中,我意识到在执行相关性分析时我不断得到不同的数字。回溯时,我意识到每次运行脚本时,我为某些股票下载的 csv 文件都会包含不同时期的历史数据。
例如,第一次尝试时,股票 A 的 csv 文件将包含从 2000 年 1 月 1 日到 2020 年 7 月 17 日的数据。几分钟后的第二次,股票 A 的 csv 文件现在将包含从 2010 年 1 月 1 日到 2020 年 7 月 17 日的数据。
即使我使用的参数每次都没有改变,情况也是如此。我无法弄清楚问题出在哪里,希望得到任何帮助或指点。
我的代码如下:
stistocks = ["U96.SI", "D01.SI", "J36.SI", "O39.SI", "BN4.SI", "N2IU.SI", "BS6.SI", "G13.SI", "V03.SI", "S63.SI", "F34.SI", "S68.SI", "C52.SI", "Z74.SI",
"A17U.SI", "U11.SI", "H78.SI", "M44U.SI", "C31.SI", "U14.SI", "J37.SI", "T39.SI", "C6L.SI", "S58.SI", "D05.SI", "C38U.SI", "C09.SI", "C61U.SI", "C07.SI", "Y92.SI", "A35.SI"]
params = {"period1":946857600, "period2":1595030400, "interval": "1d", "events": "history"}
headers = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'en-GB,en-US;q=0.9,en;q=0.8',
'Dnt': '1',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4)'
'AppleWebKit/537.36 (KHTML, like Gecko)'
'Chrome/83.0.4103.97 Safari/537.36'}
s = requests.Session()
s.headers.update(headers)
retries = Retry(total=5, backoff_factor=1, status_forcelist=[ 502, 503, 504 ])
s.mount('https://', HTTPAdapter(max_retries=retries))
for stock in stistocks:
url = "https://query1.finance.yahoo.com/v7/finance/download/{}".format(stock)
data = s.get(url, params = params)
with open("{}.csv".format(stock), "wb") as f:
f.write(data.content)
【问题讨论】:
标签: python download python-requests