Уведомления

Группа в Telegram: @pythonsu

#1 Май 5, 2020 21:28:13

MQLab
Зарегистрирован: 2020-05-05
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Скачать котировки finam.ru

Рабочий код

 #!/usr/bin/python3
from urllib.parse import urlencode
from urllib.request import urlopen
from datetime import datetime
periods={'tick':1, 'min':2, '5min':3, '10min':4, '15min':5, '30min':6, 'hour':7, 'daily':8, 'week':9, 'month':10}
tickers={'ABRD':82460,'AESL':181867,'AFKS':19715,'AFLT':29}
# Здесь вызов функции
def printme( str ):
   "Это печатает переданную строку в эту функцию"
   period=7
   start = "01.01.2014"
   end = "30.04.2020"
   FINAM_URL = "http://export.finam.ru/"
   market = 0
   start_date = datetime.strptime(start, "%d.%m.%Y").date()
   start_date_rev=datetime.strptime(start, '%d.%m.%Y').strftime('%Y%m%d')
   end_date = datetime.strptime(end, "%d.%m.%Y").date()
   end_date_rev=datetime.strptime(end, '%d.%m.%Y').strftime('%Y%m%d')
   params = urlencode([('market', market),('em', tickers[str]),('code', str),('apply',0),('df', start_date.day),('mf', start_date.month - 1),('yf', start_date.year),('from', start_date),('dt', end_date.day),('mt', end_date.month - 1),('yt', end_date.year),('to', end_date),('p', period),('f', str+"_" + start_date_rev + "_" + end_date_rev),('e', ".csv"),('cn', str),('dtf', 1),('tmf', 1),('MSOR', 1),('mstime', "on"),('mstimever', 1),('sep', 3),('sep2', 1),('datf', 1),('at', 1),('fsp', 1)])
   url = FINAM_URL + str+"_" + start_date_rev + "_" + end_date_rev + ".csv?" + params #урл составлен!
   txt=urlopen(url).readlines() #здесь лежит огромный массив данных, прилетевший с Финама.
   local_file = open(str+'.txt', "w") #задаём файл, в который запишем котировки.
   for line in txt: local_file.write(line.strip().decode( "utf-8" )+'\n')
   local_file.close()
   print("Готово. Проверьте файл "+str+".txt в папке где лежит скрипт")
   return
# Теперь вы можете вызвать функцию printme
tickers_list = ['ABRD', 'AESL', 'AFKS', 'AFLT'];
for word in tickers_list: printme(word);

Отредактировано MQLab (Май 5, 2020 21:28:47)

Офлайн

#2 Июль 21, 2020 12:04:58

WoMax
Зарегистрирован: 2014-05-26
Сообщения: 124
Репутация: +  9  -
Профиль   Отправить e-mail  

Скачать котировки finam.ru

Ты делаешь глупую работу. Если хочешь работать с котировками на питоне, используй https://pandas-datareader.readthedocs.io/en/latest/remote_data.html, там уже все написано за тебя. Также изучи https://pandas.pydata.org/ (есть книги на русском в открытом доступе по pandas).

И если потом уже действительно захочется вкатится в индустрию, то надо смотреть в сторону multicharts и от платных поставщиков котировок, увы, никуда не деться.


Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version