Загрузка нескольких файлов XLS из http по дате в Python - PullRequest
0 голосов
/ 07 декабря 2018

Существует общий веб-адрес, который может ссылаться на любой файл XLS внутри базы данных.Вы не можете получить к нему доступ через ftp или напрямую через каталог, но вы можете скачать, передав аргументы даты в сам адрес http.

http:

https://docs.misoenergy.org/marketreports/YYYYMMDD_sr_gfm.xls

Пользователь может изменить ГГГГММДД до фактической даты, и этот адрес можно использовать для загрузки файла xls ( ежедневно ).

Я хочу иметь возможность зацикливаться, получить доступ к этим файлами загрузите их с заданной даты начала и даты окончания , подставив YYYY, MM и DD, поэтому начните с 2003-01-01 и выполняйте до настоящего времени 2018-12-06.

Как мне начать это?

1 Ответ

0 голосов
/ 07 декабря 2018

Должно работать следующее:

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)
...