Skip to content
AfoniyPublic

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Аналитика экспорта растениеводства России

Проект для сбора и анализа данных о контрактах и экспорте растениеводческой продукции в России.

Описание

Проект состоит из двух основных компонентов:

  1. Скрипт сбора данных (agro.py) - агрегатор открытых данных о контрактах растениеводческой продукции с портала ЕИС в сфере закупок
  2. Веб-приложение (app.py) - интерактивная аналитическая панель для визуализации данных об экспорте растениеводства

Возможности

Скрипт сбора данных (agro.py)

  • Сбор данных о контрактах по растениеводческой продукции с портала zakupki.gov.ru
  • Извлечение информации о поставщиках, заказчиках и объектах закупки
  • Формирование витрины данных с показателями:
    • Компании-поставщики (ИНН, название, КПП)
    • Продукция (название, ОКПД2, единица измерения)
    • Объемы поставок и цены
    • Даты заключения контрактов
  • Сохранение данных в форматах CSV и Parquet
  • Генерация рейтинга компаний по объему поставок

Веб-приложение (app.py)

  • Интерактивная аналитическая панель на базе Streamlit
  • Разделы анализа:
    • Обзор рынка
    • Анализ компаний
    • Региональный анализ
    • Экспортная статистика
    • Динамика цен и объемов
  • Визуализация данных с помощью Plotly
  • Фильтрация и детальный просмотр информации

Установка

  1. Клонируйте репозиторий:
git clone <repository-url>
cd Product-main
  1. Создайте виртуальное окружение:
python -m venv venv
  1. Активируйте виртуальное окружение:
  • Windows:
venv\Scripts\activate
  • Linux/Mac:
source venv/bin/activate
  1. Установите зависимости:
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 - полная витрина данных в формате Parquet
  • offers_<timestamp>.csv - полная витрина данных в формате CSV
  • company_ranking_<timestamp>.csv - рейтинг компаний по объему поставок

Поддерживаемые товарные группы

По умолчанию скрипт собирает данные по следующим товарным группам:

  • Пшеница (зерно)
  • Ячмень
  • Кукуруза
  • Подсолнечник
  • Рапс
  • Соя
  • Свекла сахарная
  • Картофель столовый

Список можно расширить через параметр --products-config.

Лицензия

Проект предназначен для образовательных и исследовательских целей.

Примечания

  • Скрипт использует публичный HTML-доступ к порталу zakupki.gov.ru
  • Рекомендуется соблюдать разумные интервалы между запросами (параметр --sleep)
  • Данные собираются в соответствии с условиями использования портала ЕИС

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages