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:
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file LanusStats-1.3.1.tar.gz
.
File metadata
- Download URL: LanusStats-1.3.1.tar.gz
- Upload date:
- Size: 20.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4ed4bfc52288abd59ac603831694792277661d88bf4c270c80387a5695e49af6 |
|
MD5 | 2ad4d5712b50116d253bbf382c1c0e8c |
|
BLAKE2b-256 | b9b8ea31637e1315d353d78d4519a28fe48ff5cc240a3b2b2ba584439a961ef3 |
File details
Details for the file LanusStats-1.3.1-py3-none-any.whl
.
File metadata
- Download URL: LanusStats-1.3.1-py3-none-any.whl
- Upload date:
- Size: 23.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29469541efe82b2b287773cab1103507e0ffe005dd9e86e4cb6e16c04467b250 |
|
MD5 | d0a718188857a6bb2b80465903a2195c |
|
BLAKE2b-256 | 3e964693eeb063c3d77b8ab8f66ba7cc2b410b8043cb6ae12ff193c35484c18c |