python - 从雅虎财经网站下载的数据不一致
问题描述
我用 python 编写了一个脚本来从 Yahoo Finance 下载 csv 文件(每只股票一个),其中包含我感兴趣的各种股票的历史股票数据。然后我使用这些数据进行相关性分析。
在今天多次运行代码的过程中,我意识到在执行相关性分析时我不断得到不同的数字。回溯时,我意识到每次运行脚本时,我为某些股票下载的 csv 文件都会包含不同时期的历史数据。
例如,在第一次尝试时,股票 A 的 csv 文件将包含从 01/01/2000 到 17/07/2020 的数据。几分钟后的第二次,股票 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)
解决方案
推荐阅读
- microsoft-teams - Microsoft Graph API 获取频道成员
- html - 如何在按钮内显示左双引号?
- python - 在 scipy 中使用 numpy 数字化输出最小化问题
- sqlite - 将其连接到 sqlite 后无法构建我的应用程序
- python - 为什么我的 Gmail 帐户 Bruteforcer 无法正常工作?
- python - Python 从并行文件夹中的 Jupyter Notebook 导入
- javascript - MySQL 未在 Node.js 中使用 Promise.All 运行
- javascript - 如何在更改第二个选择选项时使用不同的属性
- python - bash:/python/run/venv/bin/activate:没有这样的文件或目录
- html - 列到顶部 html 样式两个方形文本行