Парсер sofascore на Python c выводом информации в телеграм бота
Краткое описание функционала программы:
Программа должна сохранять всю необходимую информацию о матче по настольному теннису в json-файл, далее отбирать матчи, соответствующие критериям, и сохранять их в отдельный json-файл. После чего вся необходимая информация о матчах должна выводиться в телеграм бота в зависимости от выбранного режима работы. Программа должна быть загружена на сервер. Сбор данных, сопоставление критериев и телеграм бот должны быть реализованы в отдельных файлах. Если что- то непонятно, то пожалуйста спрашивайте!!!
Требования:
- Знание языка программирования Python и библиотек для парсинга
- Бот должен быть выполнен с помощью модуля Aiogram
- Комментирование кода
Информация по каждому матчу, которую нужно спарсить и сохранить в json файл:
- Номер (порядковый номер матча в файле)
- Дата
- Время
- Лига
- Игрок 1
- Игрок 2
- Количество очных встреч (обязательный пункт «показать все», учитывают только сыгранные игры)
- Средний счет очных встреч (находим среднее арифметическое выигранных партий каждого игрока)
- Средний тотал очных встреч (находим среднее арифметическое тоталов каждой игры)
- Форма последних матчей игрока 1 (отношение побед к количеству игр за последние 5 матчей)
- Форма последних матчей игрока 2 (отношение побед к количеству игр за последние 5 матчей)
- Тотал последних матчей игрока 1 (средний тотал за последние 5 матчей)
- Тотал последних матчей игрока 2 (средний тотал за последние 5 матчей)
- Классическая вероятность победы игрока (рассчитать на основ личных встреч. смотрим кто выигрывал больше и определяем фаворита. Вероятность = количество побед фаворита / количество очных встреч)
- Прогноз (П1 или П2: выбираем большую вероятность победы одного из игроков)
- Коэффициент нужного исхода (определяем на основе прогноза)
- Счет игры
- Счет каждого сета
- Тотал
- Результат матча (если совпал с прогнозом, то «+», если не совпал, то «-»)
- Выигранные поинты
- Максимум очков подряд
- Сравняли счет
- Больший отрыв
- Ссылка на матч
Парсим до начала матча:
- Номер
- Дата
- Время
- Лига
- Игрок A
- Игрок B
- Количество очных встреч
- Средний счет очных встреч
- Средний тотал очных встреч
- Форма последних матчей игрока А
- Форма последних матчей игрока В
- Тотал последних матчей игрока А
- Тотал последних матчей игрока В
- Классическая вероятность победы игрока
- Прогноз (вычислить на основе личных встреч)
- Коэффициент нужного исхода
- Ссылка на матч
Парсим после окончания матча:
- Счет игры
- Счет каждого сета
- Тотал
- Результат матча
- Выигранные поинты
- Максимум очков подряд
- Сравняли счет
- Больший отрыв
Критерии отбора матча (Все критерии должны быть переменными для поселяющей удобной перенастройки бота):
- За последний год должно быть сыграно не менее 3 очных встреч (количество матчей указывается отдельной переменной)
- Один из игроков должен побеждать другого не менее чем в 70% случаев за весь период времени или не менее 70% за последние десять матчей исходя из статистики на сайте (вероятности указываются отдельной переменной)
- Минимальный коэффициент 1,15 (указывается отдельной переменной)
Режимы работы телеграм бота (выбирается в боте с помощью кнопок):
- Лайв (публикуется каждый, отобранный согласно критериям, матч отдельно за 15 минут до его начала по заданному шаблону сообщения)
- Линия (отправляет Excel файл со всеми, отобранными согласно критериям, матчами, которые играются в текущий день)
- Выборка (отправляет ссылки для загрузки Excel файл и json-файла со всеми, отобранными согласно критериям, матчами за все время)
- Датафрейм (отправляет ссылки для загрузки Excel файл и json-файла со всеми матчами за все время)
Шаблон для вывода информации о матче в телеграм бота:
Матч: №1
Дата: 26.06.2023
Вемя: 16:10
Лига: TT Elite Series
Klos P. Grela A.
Средний тотал: 77
Средний счет: 1-3
Кол-во матчей: 7
Форма: 0.6 0.8
Тоталы: 65 82
Вероятность: 0.71
Прогноз: П2
КФ: 1.50
Ссылка: