CoderCastrov logo
CoderCastrov
Анализ данных

Парсинг данных с Bovada

Парсинг данных с Bovada
просмотров
3 мин чтение
#Анализ данных
Table Of Content

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

    Хотя я бы не назвал себя игроком, мне нравится использовать Bovada в качестве источника данных, чтобы увидеть, как меняются некоторые тренды со временем для некоторых соревнований. Я отслеживал НБА, НКАА, президентские выборы, Оскар и даже победителя "Игры престолов". Это лишь подтверждает мое любопытство к данным, интересно видеть, как данные меняются со временем.

    Итак, как я это делаю? Я активно использую Jupyter, который представляет собой интерфейс блокнота, позволяющий использовать различные языки программирования... Я использую его в основном для Python.

    Хотя Python отлично подходит для анализа данных, Jupyter также позволяет использовать другие библиотеки для выполнения других функций. В этой статье я использую Selenium для парсинга Bovada и создания набора данных, который можно использовать для анализа данных.

    Мы будем парсить данные с веб-страницы в блокнот Jupyter

    Я предоставлю ссылку на полное решение в конце, но я хочу пройти по каждой ячейке, чтобы вы поняли, что мы делаем.

    Сначала импортируем несколько пакетов, чтобы помочь нам достичь нашей цели. Вы увидите, что мы импортируем Selenium, Datetime, CSV, Numpy и Pandas. Все они помогут нам считывать или получать данные для создания нашего набора данных.

    Также я импортирую Plotly как инструмент визуализации данных, о котором я расскажу в другой статье... Данные эффективны только в том случае, если вы можете использовать их для рассказа истории, и вот где вступает в игру визуализация.

    Хорошо, после импорта всего необходимого мы настроим несколько функций. Первые из них довольно простые и будут использоваться для анализа данных в будущей статье.

    Следующая функция - это место, где происходит весь парсинг. Я попытался прокомментировать некоторые области, чтобы вы могли следовать за ними, но я также дам общий обзор здесь. Она длинная, но не такая сложная.

    Мы создаем эту функцию для передачи двух значений: URL Bovada для парсинга и имя файла для чтения и сохранения исторических данных.

    Сначала мы инициируем Selenium, вам нужно будет скачать ChromeDriver и указать этот код на вашем локальном ChromeDriver. В конце этого первого раздела будет запущен Selenium на URL, который вы передали.

    Затем мы парсим значения с веб-сайта на основе их имени элемента, определенного разработчиками веб-сайта Bovada. Вы можете использовать инструменты разработчика Chrome, чтобы найти элементы или использовать другие функции Selenium для парсинга нужных вам данных.

    Вы можете использовать различные веб-элементы... в этом примере я использовал class_name

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

    Затем мы инициируем три объекта списка для трех интересующих нас частей данных: название ставки (например, Чемпионат мира 2019 года), результат (например, Хьюстон Астрос) и цена ставки (например, +225). Мы будем перебирать объекты Selenium, которые мы загрузили ранее, чтобы добавить каждое значение из этого списка в объект списка. Название не требует перебора, так как оно будет одинаковым для каждого.

    Наш последний раздел будет заключаться в том, чтобы взять данные из объектов списка и поместить их в Pandas dataframe. Мы добавим временную метку, чтобы мы могли просматривать данные со временем, и мы добавим его к нашему входному dataframe, если оно существует. Наконец, мы запишем файл, чтобы у нас были сохранены исторические данные локально, закроем браузер и вернем dataframe для дальнейшего анализа данных.

    Когда все это создано в виде функции, остается только задать URL и имя файла, а затем запустить функцию.

    Текущие коэффициенты в Bovada — Go Reds…может быть, в следующем году Текущие коэффициенты, спарсенные в мой pandas dataframe

    Теперь у вас есть готовый блокнот.

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