Блог им. JohnMitrich
import requests import datetime import pathlib SECIDs = ["GAZP", "BANEP", "LKOH"] DISK = "E" for SECID in SECIDs: from_date = "2020-05-04" to_date = "2005-01-03" while str(to_date) != from_date: to_date = str(to_date) to_date = to_date.split('-') a = datetime.date(int(to_date[0]), int(to_date[1]), int(to_date[2])) b = datetime.timedelta(days=140) to_date = a + b pathlib.Path("{}:/{}/{}".format(DISK, "Database_MOEX", SECID)).mkdir(parents=True, exist_ok=True) filename = SECID + "_" + str(to_date) + ".csv" with requests.get("http://iss.moex.com/iss/history/engines/stock/markets/shares/boards/tqbr/securities/{}.csv?date={}".format(SECID, to_date)) as response: with open("{}:/Database_MOEX/{}/{}".format(DISK, SECID, filename), 'wb') as f: for chunk in response.iter_content(): f.write(chunk)Для начала пройдемся по его плюсам и минусам. Самый главный минус, что этот парсер качает только определенный период, который уникален для каждой акции, судя по всему для увеличения этого периода надо кинуть бирже на лапу:), и то что информация предоставляется за день, теперь перейдем к плюсам: можно выкачивать историю за определенный период для нескольких инструментов сразу (их количество ограничивается лишь количеством инструментов на мосбиржи), есть возможность назначать диск для сохранения информации, быстрота выгрузки данных.
Деньги — наглых.
Форум — никого.
Что если понедельник выходной?
А так + и звездочка
fs.moex.com/files/6523
Вообщем, получается скачивать кучу файлов с одинаковыми датами.
В ручном режиме вроде работает
https://iss.moex.com/iss/history/engines/stock/markets/shares/boards/EQNE/securities/gazp?from=2010-01-01&till=2010-01-20
Емельянов Иван, в коде нужно в строчке с адресом to_date заменить на str(to_date)
Посмотрел, что он не строчку вставлял в адрес, а численное значение даты
Можно с задержкой или End of Date.
В ней акции подгружать можно, но срочные рынки, увы, никак.
Емельянов Иван, вот получше
только качайте данные частями (если вся история минуток нужна, например), долгие соединения сервер обрывает.
import pandas_datareader.data as web
f = web.DataReader('SBER', 'moex', start='2020-01-01', end='2020-01-31')
Причем, вместо 'SBER' можно подставить ['SBER', «LKOH»....]
Где скачать минутки?
То же самое только чуть технологичее вроде как делает либа от Михаила
есть же f строки. мало того, что они читабельнее, так еще и чуточку быстрее