CoderCastrov logo
CoderCastrov
Парсер

Быстро и легко парсим FBREF с помощью Pandas

Быстро и легко парсим FBREF с помощью Pandas
просмотров
2 мин чтение
#Парсер

Мы обожаем футбольные данные, и fbref - один из лучших открытых источников!

Мы собираемся спарсить таблицы лиги и некоторую другую статистику по броскам, чтобы понять, что можно сделать. fbref использует таблицы HTML, что является ключевым требованием для нашей работы сегодня. Как всегда, полный код здесь: https://github.com/PaulyCorcoran/Medium_Football/blob/main/fb%20ref.ipynb

Первый шаг - определить, какую таблицу мы хотим спарсить. В этой статье я выбираю таблицу лиги La Liga, которая находится здесь https://fbref.com/en/comps/12/La-Liga-Stats.

Единственная библиотека, которая нам нужна для парсинга таблиц HTML, - это pandas. Импортируем библиотеку и устанавливаем целевой URL в функцию pd.read_html().

 import pandas as pd
 df = pd.read_html('[https://fbref.com/en/comps/12/La-Liga-Stats'](https://fbref.com/en/comps/12/La-Liga-Stats'))

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

for idx, table in enumerate(df):
 print("***************************")
 print(idx)
 print(table)

Здесь мы просим Python пройти по df и распечатать индекс и таблицу, которую он содержит. Как вы можете видеть ниже, индекс начинается с [0] в Python, и таблица была распечатана после. Мы хотим извлечь таблицу с индексом [0], это можно сделать, просто срезав df[0].

Что оставляет нас с извлеченной таблицей.... круто, да?

Тетрадь автора

Остальная часть тетради рассматривает еще одно извлечение таблицы La Liga. При парсинге таблиц HTML fbref полученный df может иметь многоуровневые столбцы, что повлияет на любой анализ или построение графиков. Мы можем удалить многоуровневые столбцы, используя df.columns.droplevel(). Пройдите по предоставленной тетради, чтобы увидеть пример.

Наконец, я получил статистику по броскам для лиги и отфильтровал топ-4 команды и построил график. Это краткий пример того, что можно сделать с футбольной статистикой, спарсенной с fbref. Надеюсь, вам понравится играть! Ниже я построил график показателей точных ударов по воротам для текущих топ-4 команд. Мы можем получить интересные идеи, строя графики. Севилья гораздо менее успешна в достижении точных ударов по воротам!

Статистика точных ударов по воротам для Топ-4 на 29/03/2022

Если вам понравилась эта публикация, ознакомьтесь с моим последним постом о парсинге фикстур fbref! https://medium.com/p/e0d8130a3dfd и подпишитесь на меня, чтобы получать больше футбольного контента!

И если вы хотите увидеть больше футбольного контента от меня или других отличных авторов здесь на Medium, вы можете присоединиться, используя эту ссылку без дополнительных затрат для себя.

Присоединитесь к Medium с моей реферальной ссылкой - Пол Коркоран

Читайте все истории от Пола Коркорана (и тысячи других писателей на Medium). Ваша членская плата напрямую поддерживает...

medium.com

В других постах я рассказывал о модели ожидаемых голов, парсинге статистики футбола с официальных сайтов Лиги Чемпионов, Чемпионата Мира 2022 года и Французской Лиги 1, а также множестве интересных аналитических статей о футболе в целом.

Хорошего дня!