11 месяцев назад История
README.md

Задание №3

Организовать загрузку в БД данных со страницы https://www.atsenergo.ru/results/rsv/statistics. Необходимо загрузить исторические данные и ежедневно подгружать свежие обновления. Приложить DDL для таблицы в БД (связывать с другими таблицами не надо, пользователи будут работать с данными как есть) и код скриптов.

Требованияя и зависимости

Python 3.11 Postgres 12.15

Библиотеки:

  • pipenv
  • beautifulsoup4
  • lxml
  • requests
  • psycopg2
  • configparser
  • pandas
  • schedule

Установка

pip install pipenv

pipenv install

Настройка базы данных

В файле db.ini задать параметры к подключаемой базе данных.

Запуск

pipenv run python app.py

или

pipenv shell

python app.py

DDL для таблицы в БД

CREATE TABLE IF NOT EXISTS stat_on_market ( dat date NOT NULL, price_zone_code int, consumer_price numeric, consumer_volume numeric, thermal_volume numeric, hydro_volume numeric, atomic_volume numeric, renewable_volume numeric, PRIMARY KEY (dat, price_zone_code)
)

Примеры

from etl_atsenergo import ETL_Atsenergo

etl = ETL_Atsenergo()

Выгружаем исторические данные

data = etl.extract_history()

Сохраняем в csv

etl.save_csv(data, ‘result.csv’)

Читаем из csv

data = etl.read_csv(‘result.csv’)

Выгружаем данные с сайта

data = etl.extract_last()

print(’load ‘, len(data), ’ row(s)’)

Создаем таблицу

etl.create_table()

Загружаем данные в базу данных

etl.load(data)

Конвейеры
0 успешных
0 с ошибкой