Фрилансеры предложат решение вашей задачи уже через несколько минут!
Публикация заказа не займет много времени.
Алексей Лященко
26 лет, Россия
28 дней в сервисе
Был онлайн 7 дней назад

Краткое описание задачи: написать парсер для сайта спортивных ставок oddsportal точка ком 

Инструменты: крайне желательно использование Python (если будут аргументированные предложения использования другого языка – можем обсудить), а также PostgreSQL. 


Есть некоторые технические наброски по моделям, с которыми мы можем ознакомить. 

Комментарии в коде ТОЛЬКО на русском языке! =) 

Немного конкретики: 


1. Логинимся (чтобы получать полный список, аккаунт даём) 
2. Парсим список видов спорта (колонка слева, модель Sport) 
Данная колонка динамично меняется. Какие-то виды спорта могут добавляться какие-то убираться. Нужно парсить актуальные и добавлять новые к нам в БД. Собираем все актуальные данные. 
3. Внутри каждого вида спорта, есть страны, лиги – это условное деление (то к чему привязан чемпионат это может быть не страна а например World – модель Country). Если открыть SOCCER то парсим список Popular (список популярных лиг, модели нет). Парсить Today's matches не нужно. 
4. Внутри каждой Страны парсим чемпионаты модель Championship 
5. Для каждого чемпионата парсим все матчи (модель Match) 
6. Для каждого матча парсим коэффициенты разделяя по видам ставок. 
Тут есть зависимость от вида ставок. То есть конкретные коэффициенты (модель CurrentODD) зависит от вида спорта, от вида ставки (модель Forecast) и от букмекера (модель Bookmaker) 
7. Как записаны сами коэффициенты в модели CurrentODD в комментариях кода  

Какие виды ставок парсим: 
Сверху страницы конкретного матча есть datetime проведения – его парсим. Потом от него будем делать расчет закрытия принятия прогнозов (за 5 минут до начала матча перестаем принимать прогнозы) 
- 1x2 (Full time, 1st Half 2nd Half) – в модели CurrentODD 3 разных блока. 
Нас интересует только конкретные коэффициенты букмекера  и только колонки 1,X,2 (Payout не парсим и статистические средняя ит.п. Не парсим) 
- Home/Away 
Для футбола – не парсим. 
- AH (Asian Handicap) 
(см вложенный скрин) 
a) Вся таблица состоит из групп (значений форы – схлопнутые строки) 
b) Парсим только внутри развернутой группы букмекера, берем значения handicap (0, -1.25, +1 и тд), 1, 2 (Payout не нужен) 
c) Тоже самое по 1st Half и по 2nd Half 
- Over/Under – аналогично AH (Asian Handicap). Берем поля из развернутой группы Тоtal,Over,Under 
- EH – не берем 
- Double Chance – берем все (Full time, 1st Half 2nd Half) берем 1X 12 X2 
- Correct Score – тянем значение счета из группы (первая колонка в группированном списке). Внутри группы берем odds (Full time, 1st Half 2nd Half соответственно тоже). 
- Half Time / Full Time – из группы первая колонка для нас важна берем её. Внутри группы берем odds 
- Odd – Even – берем всe odd и even по Full, 1st,2nd 
- Both Teams to Score – берем Yes, No (по Full time, 1st Half 2nd Half) 

Важно для всех коэффициентов: 
Парсить Opening Odds и их можно получить при наведении мышки на коэффициент это история изменения коэффициента.Нам нужно получить только  Opening odds: то есть с каким коэффициентом было открытие рынка 

Первым этапом разработки – нужно сделать сам парсинг. 
Далее нужно будет уметь парсить отдельно (приоритетно некоторые события или лиги или виды спорта) 
(!!!! ОБСУЖДАЕМО !!!!) Из дополнений – есть понимание что нужно создавать свой личный кеш страниц/табиков что парсим. Будут возникать множественные запросы к парсеру актуального события нам незачем много раз парсить одно и тоже, мы можем задать некий таймаут (время жизни кеша) в этот период мы не парсим актуальное событие даже если идет запрос. Это обсуждаемо и на следующие шаги развития проекта. 

Также нужно парсить результаты матча на странице матча. Когда он закончен (когда парсить и что именно парсеру не особо) должно знать должна быть обеспечена возможность получения данных. Далее когда мы полчаем данные мы дальше запускаем алгоритмы обработк. 

Варианты использования парсера, а именно когда и в каком объеме что нужно парсить: 
1. Хочу спарсить всё – наполнение всей базы (точно в начале, может еще иногда для контента) 
2. Парсить некоторые виды спорта в которые играют часто (регулярно, несколько раз в день) 
3. Хочу парсить коэффициенты конкретного матча – конкретного матча по всем букмекерам (в момент обращения пользователя, чтобы получить актуальные данные)