有一个通用网址,可以链接到数据库内的任何XLS文件。您不能通过ftp或直接通过目录访问它,但是可以通过将日期参数传递到http地址本身来进行下载。
http是:
https://docs.misoenergy.org/marketreports/YYYYMMDD_sr_gfm.xls
用户可以将 YYYYMMDD 更改为实际日期,该地址可用于下载xls文件(每天)。
我希望能够循环访问,访问这些文件,并通过替换YYYY和MM和DD从给定的开始日期和结束日期下载它们,因此从2003年1月1日,直到当前时间2018年12月6日。
我将如何开始呢?
答案 0 :(得分:1)
以下方法应该起作用:
from datetime import date, timedelta
import requests
d1 = date(2018, 8, 15) # start date
d2 = date(2018, 8, 25) # end date
delta = d2 - d1
url_pattern = 'https://docs.misoenergy.org/marketreports/%s'
file_pattern = '%s_sr_gfm.xls'
for i in range(delta.days + 1):
filename = file_pattern % str(d1 + timedelta(i)).replace('-', '')
print(filename)
response = requests.get(url_pattern % filename, stream=True)
response.raise_for_status()
with open(filename, 'wb') as handle:
for block in response.iter_content(1024):
handle.write(block)