Skip to content

radamc/marca-fantasy-api-scraper-updated

 
 

Repository files navigation

Marca Fantasy Scraper

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

  • Python v3+
  • Librería requests en python
  • Librería numpy en python

Ejecucion

  • 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):

ejemplo ejecucion

  • Acepta algunos comandos al ejecutarlo, para más información
fantasy_scraper.py --help
Ejemplo comandos

Importado como libreria

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

Funcionamiento

  • 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 de marketValue en un .JSON players/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,
            ...
    },
    ...
}
            

Referencias

Este es un proyecto basado en el de @diegoparrilla, de donde he sacado el API endpoint y parte de la estructura de los JSON.

Implementaciones pendientes

Se pueden consultar en issues -> labels -> mejora

Sugerencias y Errores

  • Para errores escribir una nueva en entrada en issues subiendo el log.txt y una breve descripción del problema
  • Para sugerencias escribir una nueva entrada en issues
  • También revisaré los pull requests

About

Web scraper del API de la LaLiga Fantasy de Marca (actualizado)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%