Skip to main content

Python library for scraping football data and visualize it / Libreria de Python para scrapear data de fútbol y visualizarla

Project description

Esto es la líbreria de LanusStats, un lugar en donde se intentará hacerle la vida más facíla toda persona que este interesada en el ámbito del fútbol y los datos. Se van a tener recursos de todo tipo, desde scrapeo de información de distintas páginas/lugares hasta la posibilidad de hacer visualizaciones con solo una función.

Para instalarla, solamente tenes que correr esto en algun consola de comando:

pip install LanusStats

En caso de querer actualizarla a la versión más reciente:

pip install --upgrade LanusStats

La libreria consta de distintos módulos para sacar información de estas páginas:


Cómo se usa?

General

Para saber que páginas contienen un módulo para scrapear, podes hacer:

get_available_pages()

Para saber que ligas tienen las páginas de la función anterior, podes hacer:

get_available_leagues(page)

Para saber que temporadas tienen las ligas de las páginas de la función anterior, podes hacer:

get_available_season_for_leagues(page, league)

Fbref

Importo la clase de esta manera:

import LanusStats as ls  
fbref = ls.Fbref()

Todas las funciones deben tener el fbref. delante de ellas

  • Para scrapear información de los equipos se puede usar get_teams_season_stats. Ejemplo:
get_teams_season_stats('gca', 'Copa de la Liga', season='2024', save_csv=False, stats_vs=False, change_columns_names=False, add_page_name=False)

change_columns_names te permite ponerle el nombre a columnas de tipo Unnamed: 0 add_page_name le agrega el nombre de la página a las columnas, hay veces que se repiten los nombres entre páginas
save_csv exporta la tabla a un csv
stats_vs te permite scrapear las tablas de estadísticas vs que en Fbref está la posibilidad

Si esto lo queres hacer todo junto, podes usar get_vs_and_teams_season_stats. Ejemplo:

get_vs_and_teams_season_stats('gca', 'Copa de la Liga', season='2024', save_excel=False, stats_vs=False, change_columns_names=False, add_page_name=False)

Esto te devuelve dos DataFrames, uno para las estadísticas a favor y otro en contra. save_excel te permite exportarlo a un .xlsx que contiene dos páginas.

Para terminar, con get_all_teams_season_stats podes scrapear TODAS las estadísticas que esten en la pagina. Ejemplo:

get_all_teams_season_stats('Copa de la Liga', '2024', save_csv=False, stats_vs=False, change_columns_names=False, add_page_name=False)
  • Para scrapear data de los jugadores se pueden usar:
get_player_season_stats('gca', 'Copa de la Liga', save_csv=False, add_page_name=False)

Y si quiero scrapear todas las estadísticas en una

get_all_player_season_stats("Copa de la Liga", "2024", save_csv=False, add_page_name=False)
  • Del perfil de un jugar se puede sacar los percentiles y las similutdes (si las tiene)
get_player_percentiles("https://fbref.com/en/players/bc7dc64d/Bukayo-Saka")
get_player_similarities("https://fbref.com/en/players/bc7dc64d/Bukayo-Saka")
  • De un partido en particular se puede sacar los tiros y las estadísticas generales (si las tiene)
get_match_shots("https://fbref.com/en/matches/77d7e2d6/Arsenal-Luton-Town-April-3-2024-Premier-League")
get_general_match_team_stats("https://fbref.com/en/matches/77d7e2d6/Arsenal-Luton-Town-April-3-2024-Premier-League")
  • Si queres scrapear la tabla de posiciones de una liga, podes:
get_tournament_table("https://fbref.com/en/comps/9/Premier-League-Stats")

FotMob

  • Para obtener las distintas tablas que pueden haber en la UI de Fotmob (ejemplo) pueden usar:
get_season_tables("Premier League", "2022/2023", "xg")
  • Para obtener información de estadísticas de una temporada (ejemplo):

** De los jugadores puedes usar:

get_players_stats_season("Premier League", "2023/2024", "expected_assists_per_90")

** De los equipos puedes usar:

get_teams_stats_season("Premier League", "2023/2024", "poss_won_att_3rd_team")
  • De un partido (ejemplo) la información que puedes sacar es de:

** Mapa de tiros:

get_match_shotmap(4193851)

** Estadísticas generales de los equipos:

get_general_match_stats(4193851)

Aclaración: El id de parametro es el que se encuentra en la url, ejemplo: https://www.fotmob.com/es/matches/afc-bournemouth-vs-manchester-united/2yrx85#4193851

  • También puedes obtener información de un jugador:

** Mapa de tiros (ejemplo):

get_player_shotmap("Premier League", "2023/2024", 1203665)

El 3º parametro es el id que se encuentra en la url, ejemplo: https://www.fotmob.com/es/players/1203665/alejandro-garnacho

365 Scores

SofaScore

Por el momento no está disponible el scraper de SofaScore

Visualizaciones

Hay visualizaciones seteadas para hacer desde una función que scrapean usando las funciones de la libreria y visualizan la información de cierta manera para que se puede customizar o usar derecho.

  • Plotear percentiles de los jugadores de Fbref en un grafico de MPLSoccer
fbref_plot_player_percentiles(path="https://fbref.com/en/players/058c938c/Marcelino-Moreno", image=None, chart_stats = ["shots", "passes", "defense"], save_image=True, name_extra = "- Lanus", credit_extra= "")

path Link del jugador en Fbref
image path de una imagen que quieras usar, se recomienda pasarla por https://crop-circle.imageonline.co/
chart_stats agregar rectangulos y nombres de las estadísticas al gráfico
save_image si guarda el png de la visualización
name_extra agregarle un string al título
credit_extra agregarle un string a los créditos

Ejemplo: Marcelino Moreno fbref percentile plot

  • Plotear match momentum de FotMob
fotmob_match_momentum_plot(match_id=4193851, save_fig=False)

match_id es el que se encuentra en la url, ejemplo: https://www.fotmob.com/es/matches/afc-bournemouth-vs-manchester-united/2yrx85#4193851
save_fig si guardo la imagen o no


Créditos

Quiero agradecer a las influencias y ayudas que tuve para armar todo esto:


Más contenido

Unite al Discord hecho para la comunidad hispano hablante de fútbol y datos (cualquiera está invitado igual)

Para ver todo el contenido de LanusStats, te dejo este link

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

LanusStats-1.2.0.tar.gz (19.4 kB view hashes)

Uploaded Source

Built Distribution

LanusStats-1.2.0-py3-none-any.whl (22.2 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page