抓取雅虎财务数据 - Python

Scraping Financial Data Yahoo - Python

我目前正在尝试从 Yahoo Finance 抓取比特币历史财务 数据,同时仍然可以选择何时开始挖矿数据。我的代码如下,但是出现错误告诉我 "HTTP Error 404: Not Found" ... 你能告诉我这个错误是从哪里来的以及如何解决吗?

import time
import datetime
import pandas as pd

period1 = int(time.mktime(datetime.datetime(2020, 1, 1, 23, 59).timetuple()))
period2 = int(time.mktime(datetime.datetime(2022, 1, 1, 23, 59).timetuple()))

basic_url = 'https://fr.finance.yahoo.com/quote/BTC-USD/historyperiod1=1606780800&period2=1609372800&interval=1dk&filter=history&frequency=1wk&includeAdjustedClose=true'
modified_url = 'https://fr.finance.yahoo.com/quote/BTC-USD/history?period1={period1}&period2={period2}&interval=1d&filter=history&frequency=1d&includeAdjustedClose=true'

df=pd.read_csv(modified_url)
df

提前致谢!

蒂博

如果您尝试在浏览器上访问 URL,您就会发现问题所在。它不会去任何地方并被重定向 - 所以 404.

要修复它,请使用有效的 URL。也许您在 GET 参数中犯了错误?

你的逻辑很有道理。

不过你的地址好像有误。我检查了他们的网站,直接工作 link 是:

modified_url =f'https://query1.finance.yahoo.com/v7/finance/download/BTC-USD?period1={period1}&period2={period2}&interval=1d&events=history&includeAdjustedClose=true'

编辑:

既然你已经转换成 Integer 就不需要 f-string 了。也尽量不要像'a'那样使用变量。他们以后很难弄清楚。

input_year = int(input("A partir de quelle année voulez-vous commencer le scraping de données?\n"))
period1 = int(time.mktime(datetime.datetime(input_year, 1, 1, 23, 59).timetuple()))