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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file LanusStats-1.2.0.tar.gz.

File metadata

  • Download URL: LanusStats-1.2.0.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.0

File hashes

Hashes for LanusStats-1.2.0.tar.gz
Algorithm Hash digest
SHA256 0be1837ea5b4a024e5c2e11ff6944673bf37c0e87de30b4a56376b79f07b5577
MD5 2961cd12f6966a15392e5a4587edf954
BLAKE2b-256 8239ec7c5ceaad23fcf422e0c70404ff13cce8f516268d5027482d1b61761772

See more details on using hashes here.

File details

Details for the file LanusStats-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: LanusStats-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.0

File hashes

Hashes for LanusStats-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ffb75ea23e9f3d6ae842f2f791ada189871e015c91fb33d4d70ac20fb96b01c
MD5 1cd766b394b47b59530df622457bb48b
BLAKE2b-256 210dd1b66a4bdb0ef066a6ce3d039cb90938379638cd448db1484dabbd041aa8

See more details on using hashes here.

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