Найти в Дзене
Роман Дмитриев

Как обмануть букмекера? Сбор данных. Часть 1. Где взять события и ставки?

Всем привет. В поисках идей для своих небольших домашних приложений мне стало интересно, а можно ли получить хоть какую-то выгоду от ставок на спорте? В букмекерских конторах работают спортивные аналитики и так как это обычные люди, то и они способны ошибаться. По другую сторону баррикад находятся капперы - спортивные аналитики, которые находят эти самые ошибки у букмекеров и используют их для своей выгоды. На словах звучит просто. Ну а что, нашел ошибку в расчетах бука и поставил много денег -> профит. Но на самом деле все конечно сложнее. Тут и риск менеджмент, управление финансами и распределение ставок в долгосрочной перспективе. Хотя и это наверно еще не все. Нетерпеливый читатель скажет: "Ближе к делу!". Так давайте перейдем к теме статьи. Моя идея в том, что можно найти ошибки буков автоматически. Чтобы начать делать хоть какие-то выводы нам нужно собрать информацию по ставкам от любого букмекера. Какой именно букмекер не сильно важно, но я выбрал Paribet. Чтобы автоматически с

Всем привет. В поисках идей для своих небольших домашних приложений мне стало интересно, а можно ли получить хоть какую-то выгоду от ставок на спорте?

В букмекерских конторах работают спортивные аналитики и так как это обычные люди, то и они способны ошибаться. По другую сторону баррикад находятся капперы - спортивные аналитики, которые находят эти самые ошибки у букмекеров и используют их для своей выгоды. На словах звучит просто. Ну а что, нашел ошибку в расчетах бука и поставил много денег -> профит. Но на самом деле все конечно сложнее. Тут и риск менеджмент, управление финансами и распределение ставок в долгосрочной перспективе. Хотя и это наверно еще не все.

Нетерпеливый читатель скажет: "Ближе к делу!". Так давайте перейдем к теме статьи. Моя идея в том, что можно найти ошибки буков автоматически. Чтобы начать делать хоть какие-то выводы нам нужно собрать информацию по ставкам от любого букмекера. Какой именно букмекер не сильно важно, но я выбрал Paribet. Чтобы автоматически собирать данные тут даже не надо регистрироваться, что очень нам подходит. Переходим на их сайт и видим, что значения ставок меняются в онлайн режиме, а значит сайт автоматически посылает запросы на сервер. Открываем инструменты разработчика и видим:

Много одних и тех же запросов
Много одних и тех же запросов

Просматриваем все запросы и находим тот, в котором содержится информация по ставкам и матчам.

Смотрите сколько можно получить информации
Смотрите сколько можно получить информации

Просматривать всю эту информацию в инструментах разработчика не совсем удобно, так что давайте попробуем открыть этот json в вкладке браузера. Находим ссылку рядом, копируем и пробуем вставить в адресную строку.

Вот она!
Вот она!
Спасибо, стало очень удобно
Спасибо, стало очень удобно

Конечно же нам такой вид не подходит, да и как тут просмотреть информацию вообще? Есть выход! Нам помогут расширения! Есть много разных форматтеров, лично я использую этот JSON Formatter. Устанавливаете, включаете расширение и получаем:

Вот она, красота!
Вот она, красота!

В ссылке у нас указаны дополнительные параметры, например, сейчас мы получаем информацию по live матчам. Мы хотим получать информацию по всем матчам, поэтому удаляем из ссылки все параметры.

Что ж, теперь мы видим данные и было бы неплохо уже что-то с ними делать. Для начала, давайте напишем программу, которая выведет список матчей в определенном, красивом для нас, виде.

<Команда 1> - <Команда 2> | <Статус матча>
  1. Получаем весь json в виде текста
Опять некрасиво, да что ж такое
Опять некрасиво, да что ж такое

2. Нам надо загрузить весь этот текст в модуль json. После загрузки мы получим словарь python и легко получим нужные данные.

Ну и чего? Опять просто текст
Ну и чего? Опять просто текст

3. Мы загрузили данные в словарь python. Напомню, что словари состоят из пар ключ-значение. Посмотрим на json из вкладки браузера и давайте выберем ключ

Возьмем ключ lang и попробуем посмотреть, что выведет python
Возьмем ключ lang и попробуем посмотреть, что выведет python
Обратите внимание на то, что мы указали ключ в 6 строке и получили в выводе терминала значение ru
Обратите внимание на то, что мы указали ключ в 6 строке и получили в выводе терминала значение ru

4. Круто, считай полдела сделано. Осталось как-то вывести список команд и их статус. Опять же, обращаемся к изображению выше и видим заветный ключ "events", который содержит в себе информацию по матчам. По этому списку будем проходить стандартным циклом for.

Ох, смотрите какие четкие и выверенные линии
Ох, смотрите какие четкие и выверенные линии

На самом деле я постарался показать, что откуда берется и где находится. Простой цикл for проходится по каждому событию(event) и из каждого события берет получается значение по ключу 'team1'.

Хоть что-то уже вырисовывается. Читатель наверняка уже и сам догадался, что нужно сделать, чтобы получить то, что мы задумали.

Вот и все, делов то
Вот и все, делов то

Теперь мы можем сами, через терминал смотреть, что сейчас происходит с событием, его статус, счет, доступные ставки. Но мы еще нигде не храним эти данные. Написанная программа отрабатывает один раз и все. В следующей статье рассмотрим, какие есть варианты по хранению полученных данных.