Skip to content

Scorpi-ON/SportHub-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SportHub Parser

License: MIT Python versions Poetry Ruff

Парсер PDF-файла Единого календарного плана мероприятий Министерства спорта России для извлечения данных о мероприятиях за год в формате JSON

Note

Разработано в рамках окружного этапа Чемпионата России по спортивному программированию в дисциплине «программирование продуктовое» командой Код 418 из Донецкой Народной Республики, по итогам соревнований занявшей 2 место среди команд Новых регионов и 3 место в общем зачёте команд России. 🖤💙❤️

Особенности разработки

  • готов к изменению ссылки на файл на странице Минспорта (см. пример страницы, содержащей ссылку / II часть ЕКП / 2024)
  • проверяет актуальность файла по HTTP-запросу и, если ссылка на него была обновлена, запускает парсинг
  • мгновенно извлекает сырой текст из файла PDF (см. пример файла)
  • парсит релевантные данные через самописный алгоритм, основанный на текстовых паттернах и состояниях
  • отправляет извлечённые данные на целевой сервер в формате JSON по частям

Стек

  • Python — язык программирования
  • Poetry — пакетный менеджер
  • PyMuPDF — высокопроизводительный парсер PDF
  • FastAPI — высокопроизводительный веб-фреймворк для создания API
  • HTTPX — асинхронный HTTP-клиент
  • Uvicorn — высокопроизводительный ASGI сервер
  • Ruff — инструмент для форматирования и анализа кода

Установка и запуск

  1. Клонируйте репозиторий, перейдите в его папку и создайте в ней файл .env на основе .env.template.

Посредством Docker

  1. Установите и настройте Docker.
  2. Из папки проекта выполните сборку образа:
docker build -t sporthub-parser .
  1. Теперь запускать проект можно командой:
docker run -it -d -p 3000:3000 sporthub-parser

Без использования Docker

  1. Установите Poetry.
  2. Из папки проекта выполните установку зависимостей:
poetry install
  1. Теперь запускать проект можно командой:
poetry run python -m src.main

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published