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 requests<br />import datetime<br />import pathlib<br />import apimoex<br />import pandas as pd<br /><br />TICK = "SNGSP5"<br /><br />with requests.Session() as session:<br /> data = apimoex.get_board_history(session, 'SNGSP',)<br /> df = pd.DataFrame(data)<br /> df.to_csv("D:/Database_MOEX/{}.txt".format(TICK))только качайте данные частями (если вся история минуток нужна, например), долгие соединения сервер обрывает.
import pandas_datareader.data as web
f = web.DataReader('SBER', 'moex', start='2020-01-01', end='2020-01-31')
Причем, вместо 'SBER' можно подставить ['SBER', «LKOH»....]
Где скачать минутки?
То же самое только чуть технологичее вроде как делает либа от Михаила
with open("{}:/Database_MOEX/{}/{}".format(DISK, SECID, filename), 'wb') as f:есть же f строки. мало того, что они читабельнее, так еще и чуточку быстрее