
git clone https://github.com/eenden/my_case_tk.git cd my_case_tk python view.pyРекомендуется создать виртуальное окружение с помощью virtualenv и использовать его. Зависимости, как обычно, в файле requirements.txt
Хочу поделиться, на мой взгляд, интересным роликом на тему истории становления Газпрома и советской газовой промышленности.
Почему цена на газ считается с привязкой к цене на нефть?
Как складывались «газовые» отношения Западной Европы и СССР?
Про европейскую энергетическую хартию и участие в ней России
По мотивам поста https://smart-lab.ru/blog/616708.php
Вот и мой велосипед на питоне для получения котировок с Мосбиржи
from urllib import request, error
from json import loads
import pprint
class GetRawDataException(Exception):
pass
class GetPricesException(Exception):
pass
def get_prices(start_date: str, end_date: str, ticker: str) -> dict:
"""
Возвращает словарь: {дата:цена закрытия}
"""
req = 'https://iss.moex.com/iss/history/engines/stock/markets/shares/boards/TQBR/securities/{}.json?from={}&till={}'.format(ticker, start_date, end_date)
contents = get_raw_data(req)
try:
data = loads(contents)
prices = {x[1] : x[11] for x in data['history']['data']}
return(prices)
except Exception as err:
raise GetPricesException(err)
def get_raw_data(req: str) -> str:
"""
Возвращает результат запроса к серверу Мосбиржи
"""
try:
contents = request.urlopen(req).read()
return(contents)
except URLError as err:
raise GetRawDataException(err)
try:
prices = get_prices('2019-05-23', '2019-05-30', 'GAZP')
pprint.pprint(prices)
except GetRawDataException as err:
print('Error getting raw data: ', str(err))
except GetPricesException as err:
print('Error parsing json: ', str(err))Вывод данных происходит с помощью функции get_prices(). Механизм простой: формируется url для GET-запроса. Мосбиржа в ответ присылает json, из которого забираются нужные данные и выводятся на экран.
Есть и другие способы получения данных: yfinance, pandas-datareader и универсальный BeautifulSoup, ещё более универсальный Selenium. Но это уже совсем другая история...

