Парсинг коэффициентов ММА с основного веб-сайта сравнения коэффициентов (1/2)
Table Of Content
Эта статья направлена на сбор данных от нескольких букмекеров для сравнения коэффициентов и получения информации о движении линий ставок со временем. Это отличный пример использования знаний парсинга и веб-разработки для доступа к зашифрованным данным на веб-странице.
Извлечение данных
Сначала нам нужно получить доступ к данным, которые отображаются на веб-странице.
Щелкните правой кнопкой мыши в любом месте страницы и выберите "examiner l'élément" (извините за французский, inspect), затем перейдите на вкладку "Réseau" (Network). Это позволяет нам получить доступ к данным, которые обмениваются между фронтендом и бэкендом веб-сайта.
Когда источником является "xhr", вы можете быть уверены, что это данные, которые нам нужны, но в зашифрованном/закодированном формате, вот здесь:
LExRPzI+NlFpUXw2Mj9RW1E1MkUyUWksTFFJUWlgZGdmX2FiZ2FjX19fW1FKUWlgXWNnYl9oW1E1MkUyezIzNj1EUWlMUUlRaWhOTltMUUlRaWBkZ2ZfYWJnYWRfX19bUUpRaWBdZGBkY2VOW0xRSVFpYGRnZl9hYmdhZV...
Это требует некоторой декодировки... Мы можем распознать формат кодировки base64, давайте скопируем и вставим его в конвертер
Декодирование данных
Похоже, что декодирование сработало, но данные все еще зашифрованы, так как Bestfightodds не хочет, чтобы люди легко получали доступ к их данным... Нам нужно более детально рассмотреть способ, которым веб-сайт декодирует данные сзади вперед.
Давайте перейдем к "Trace de la pile" (стек вызовов), чтобы посмотреть на код, создающий страницу, и особенно на то, как создаются графики изменения коэффициентов ставок. Давайте нажмем на функцию, которая создает наши графики "CreateMIChart"
Функция, которая решит все наши проблемы, - это функция notin, которая сначала декодирует base64 (как упоминалось выше), а затем декодирует данные из зашифрованного формата! давайте углубимся в нее...
Это похоже на шифрование Цезаря, хорошая новость в том, что код явно дает нам ссылку (переменная m выше) и правило для расшифровки.
В Python это занимает несколько строк кода.
В результате мы получаем данные формата json об эволюции коэффициентов ставок для каждого бойца (временная метка / коэффициенты).
Заключение
Мы рассмотрели, как собирать и расшифровывать данные с крупного сайта сравнения коэффициентов. Именно так BuzzFeed несколько лет назад обнаружил потенциальные случаи мошенничества в мире тенниса, когда коэффициенты менялись слишком быстро (читайте здесь).
В следующей статье я сосредоточусь на том, как собирать эти данные для сравнения коэффициентов у разных букмекеров.