Web scraper del API de LaLiga Fantasy de Marca. Descarga la información existente en la Liga Fantasy Marca sobre los equipos y jugadores de la temporada y sus historiales de valor de mercado. Se ha implementado multithreading (tiempo de ejecución de ~25 segundos para 1595 jugadores) y comandos varios para poder modificar la ejecución sin cambiar nada del código en caso de modificaciones o aumento de jugadores en API.
- Requisitos
- Ejecucion
- Importado como libreria
- Funcionamiento
- Referencias
- Implementaciones pendientes
- Sugerencias y Errores
- Python v3+
- Librería requests en python
- Librería numpy en python
- Descarga la última versión funcional y probada + el requirements.txt desde releases/latest
- Para instalar el paquete requests y numpy (para los NaN), podemos hacerlo con
pip install -r requirements.txt
- El programa se puede ejecutar con alguno de los siguientes comandos (dependiendo de tu instalación de python):
python fantasy_scraper.py
python3 fantasy_scraper.py
py fantasy_scraper.py
- Con los ajustes establecidos por defecto y se ejecutará mostrando por pantalla un progressBar de 0% a 100%. Ejemplo de ejecución para 1595 jugadores en API por defecto (~25 segundos):
- Acepta algunos comandos al ejecutarlo, para más información
fantasy_scraper.py --help
Se puede importar y usar como librería dentro de otro script:
- El fantasy_scraper.py deberá encontrarse en la misma ruta que el script donde se quiere importar
- Se seguirá creando un archivo log.txt en la misma ubicación que se encuentra el script
- Para actualizar los .JSON sólo se necesitan las siguientes líneas en el script desde el que se importa:
import fantasy_scraper
...
def main():
...
fantasy_scraper.main(True, fantasy_scraper.TOTAL_JUGADORES)
...
...
- Se creará un log.txt que registrará cada operación del programa para solución de errores
- Se almacena el .json de cada jugador en
players/IDEQUIPO_NOMBRECORTO/IDJUGADOR_NOMBRECORTO.json
- Se crea un .json separado por cada equipo con sus jugadores y que guarda lo mismo que el jugadores pero sin estadisticas detalladas (minutos jugados,...), sólo con los puntos de cada jornada en
data/IDEQUIPO_NOMBRECORTO.json
- En el .json de cada jugador, en la sección de
marketValue
se almacena el historial de precios de mercado (por fecha) obtenido por el api endpoint de market-values. Ejemplo demarketValue
en un .JSONplayers/IDEQUIPO_NOMBRECORTO/IDJUGADOR_NOMBRECORTO.json
:
{
...
"marketValue": {
"14/07/2022": 25000000,
"15/07/2022": 25032031,
"16/07/2022": 24942978,
"17/07/2022": 24668708,
"18/07/2022": 24648333,
"19/07/2022": 24760373,
...
},
...
}
Este es un proyecto basado en el de @diegoparrilla, de donde he sacado el API endpoint y parte de la estructura de los JSON.
Se pueden consultar en issues -> labels -> mejora