Форум сайта python.su
Рабочий код
#!/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)
Офлайн
Ты делаешь глупую работу. Если хочешь работать с котировками на питоне, используй https://pandas-datareader.readthedocs.io/en/latest/remote_data.html, там уже все написано за тебя. Также изучи https://pandas.pydata.org/ (есть книги на русском в открытом доступе по pandas).
И если потом уже действительно захочется вкатится в индустрию, то надо смотреть в сторону multicharts и от платных поставщиков котировок, увы, никуда не деться.
Офлайн