Проект для сбора и анализа данных о контрактах и экспорте растениеводческой продукции в России.
Проект состоит из двух основных компонентов:
- Скрипт сбора данных (
agro.py) - агрегатор открытых данных о контрактах растениеводческой продукции с портала ЕИС в сфере закупок - Веб-приложение (
app.py) - интерактивная аналитическая панель для визуализации данных об экспорте растениеводства
- Сбор данных о контрактах по растениеводческой продукции с портала zakupki.gov.ru
- Извлечение информации о поставщиках, заказчиках и объектах закупки
- Формирование витрины данных с показателями:
- Компании-поставщики (ИНН, название, КПП)
- Продукция (название, ОКПД2, единица измерения)
- Объемы поставок и цены
- Даты заключения контрактов
- Сохранение данных в форматах CSV и Parquet
- Генерация рейтинга компаний по объему поставок
- Интерактивная аналитическая панель на базе Streamlit
- Разделы анализа:
- Обзор рынка
- Анализ компаний
- Региональный анализ
- Экспортная статистика
- Динамика цен и объемов
- Визуализация данных с помощью Plotly
- Фильтрация и детальный просмотр информации
- Клонируйте репозиторий:
git clone <repository-url>
cd Product-main- Создайте виртуальное окружение:
python -m venv venv- Активируйте виртуальное окружение:
- Windows:
venv\Scripts\activate- Linux/Mac:
source venv/bin/activate- Установите зависимости:
pip install -r requirements.txtЗапустите скрипт сбора данных:
python agro.py --pages 5 --contracts 20 --output-dir data/outputПараметры:
--pages- количество страниц выдачи на товар (по умолчанию: 1)--contracts- максимум контрактов на одну товарную группу (по умолчанию: 10)--output-dir- каталог для выгрузок (по умолчанию: data/output)--products-config- путь к JSON-файлу с пользовательским перечнем товаров--sleep- пауза между запросами к ЕИС в секундах (по умолчанию: 1.5)--insecure- отключить проверку TLS-сертификатов (не рекомендуется)
streamlit run app.pyПриложение откроется в браузере по адресу http://localhost:8501
Product-main/
├── agro.py # Скрипт сбора данных
├── app.py # Streamlit веб-приложение
├── requirements.txt # Зависимости проекта
├── README.md # Документация
└── .gitignore # Игнорируемые файлы
streamlit>=1.28.0- фреймворк для веб-приложенийpandas>=2.0.0- работа с даннымиplotly>=5.0.0- интерактивная визуализацияnumpy>=1.24.0- численные вычисленияrequests- HTTP-запросыbeautifulsoup4- парсинг HTML
Скрипт генерирует следующие файлы:
offers_<timestamp>.parquet- полная витрина данных в формате Parquetoffers_<timestamp>.csv- полная витрина данных в формате CSVcompany_ranking_<timestamp>.csv- рейтинг компаний по объему поставок
По умолчанию скрипт собирает данные по следующим товарным группам:
- Пшеница (зерно)
- Ячмень
- Кукуруза
- Подсолнечник
- Рапс
- Соя
- Свекла сахарная
- Картофель столовый
Список можно расширить через параметр --products-config.
Проект предназначен для образовательных и исследовательских целей.
- Скрипт использует публичный HTML-доступ к порталу zakupki.gov.ru
- Рекомендуется соблюдать разумные интервалы между запросами (параметр
--sleep) - Данные собираются в соответствии с условиями использования портала ЕИС