Рубрики
Без рубрики

Как построить веб -скребок для футбольных данных с Django и Fauna

В этом уроке мы будем извлекать данные из 5 лучших футбольных лиг по всему миру: EPL, LA … Tagged с Django, Fauna, Beginters, Python.

В этом уроке мы будем извлекать данные из 5 лучших футбольных лиг во всем мире: EPL, La Liga, Serie A, Bundesliga и Ligue 1. Однако, чтобы получить эти данные, мы будем извлекать их с официального спортивного веб -сайта ( incement.com ). Затем мы узнаем, как хранить и управлять этими данными с фауной.

Чтобы полностью понять этот урок, вы должны иметь следующее:

  • Python 3.7 или новее.
  • Основное понимание Фауна Анкет
  • Основные знания Джанго.
  • Текстовый редактор.

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

FAUNA-это клиентская база данных без сервера, которая использует GraphQL и язык запросов FAUNA (FQL) для поддержки различных типов данных и реляционных баз данных в API без сервера. Вы можете узнать больше об фауне в их официальной документации Здесь Анкет Если вы впервые услышали о Фауне, посетите мою предыдущую статью Здесь Для краткого введения.

Установка требуемых библиотек

Библиотеки, необходимые для этого урока, следующие:

  • Numpy – фундаментальный пакет для научных вычислений с Python
  • Панды-библиотека, обеспечивая высокопроизводительные, простые в использовании структуры данных и Инструменты анализа данных
  • Запросы-единственная библиотека HTTP без GMO для Python, безопасная для потребления человеком. (Любите эту строку от официальных документов: D)
  • BeautifulSoup – библиотека Python для извлечения данных из файлов HTML и XML.

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

pip install numpy

pip install pandas

pip install requests 

pip install bs4

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

Импорт библиотек Python

import numpy as np

import pandas as pd

import requests

from bs4 import BeautifulSoup

import json

Проведение исследования сайта

Первым шагом в любом проекте по скребке веб -царапины является исследование веб -страницы, которую вы хотите поцарапать и узнать, как она работает. Это имеет решающее значение для поиска того, где получить данные с сайта; Поэтому здесь мы начнем.

На домашней странице мы можем видеть, что на сайте есть данные для шести европейских лиг. Тем не менее, мы будем извлекать данные только для 5 лучших лиг (команды, исключая RFPL).

Мы также можем заметить, что данные на сайте начинаются с 2014/2015 по 2020/2021. Давайте создадим переменные для обработки только той информации, которую нам требуется.

# create urls for all seasons of all leagues

base_url = 'https://understat.com/league'

leagues = ['La_liga', 'EPL', 'Bundesliga', 'Serie_A', 'Ligue_1']

seasons = ['2016', '2017', '2018', '2019', '2020']

Следующий шаг – выяснить, где хранятся данные на веб -странице. Для этого откройте инструменты разработчиков в Chrome, перейдите на вкладку «Сеть», найдите файл данных (в этом примере, 2018) и выберите вкладку «Ответ». После выполнения запросов это то, что мы получим. получить (URL)

Просматривая контент веб -страницы, мы обнаружили, что данные сохраняются под элементом «скрипта» в Teamsdata переменная и кодируется JSON. В результате нам нужно отследить этот тег, извлечь из него JSON и преобразовать его в структуру данных, читаемую на питоне.

Декодирование данных JSON

  season_data = dict()

  for season in seasons:

    url = base_url+'/'+league+'/'+season

    res = requests.get(url)

    soup = BeautifulSoup(res.content, "lxml")

    # Based on the structure of the webpage, I found that data is in the JSON variable, under 

Оригинал: “https://dev.to/chukslord1/how-to-build-a-soccer-data-web-scraper-with-django-and-fauna-2l1o”