Com tenir el teu propi sistema de resultats i estadístiques de futbol amb Programari Lliure

A tots els amants de el futbol ens agrada estar informat, desitgem saber les estadístiques i resultats dels nostres equips favorits, a hores d'ara es mou molta informació a nivell de Seleccions de Futbol ja que s'està jugant la Copa Amèrica Centenari i l'Eurocopa per la qual cosa es va acudir tenir el meu propi script de resultats i estadístiques de futbol. euro2016

El nostre amic jokecamp té una revisió bastant avançada sobre Apis de futbol de codi obert, de manera que aconseguir d'on extreure la informació em va ser una mica senzill, en línies generals coneixem de sis desenvolupament / dates allotjats en github i de dos api Lliures que ens permeten accedir a dades de l'esport més bonic de l'món i són:

  • Data de Codi Obert per github
    • openfootball - football.db
    • jokecamp / FootballData
    • socerstats.us
    • engsoccerdata
    • awesome-football
    • soccer-cli
  • API Lliures
    • football-data.org (RESTful API)
    • Sports Open Data (Sèrie A Italiana)

Donaré un repàs a cadascuna d'elles, perquè jokecamp ja ha fet una gran revisió, la qual em a servit per començar de manera més fàcil aquest camí i d'aquesta manera complir l'objectiu que em plantegi a del principi. Encara els va avançar que per a aquest cas en específic seleccioneu football-data.org una grandiosa API que va crear Daniel Freitag, a més que faré servir php, el ja conegut entorn LAMP i algunes classes lliures ,.

Sense més preàmbul parlem de cadascuna de les dates i Apis lliure que tenim per extreure informació referent a el futbol:

  • openfootball - football.db: És una base de dades lliure i de codi obert, que està disponible per a tots els aficionats de el futbol, ​​està composta per dades històriques, horaris de jocs, equips i jugadors, és la unió de moltes dades i molts col·laboradors. El seu creador Gerald Bauer a creador està grandiosa data amb la ferma intenció de convertir-se en la data oberta més gran en la història de el futbol.

Un exemple de la data que es pot obtenir d'aquest repositori tenim:

[Sat Aug/16]
  12.45  Manchester United    1-2  Swansea City
  15.00  Leicester City       2-2  Everton FC
  15.00  Queens Park Rangers  0-1  Hull City
  15.00  Stoke City           0-1  Aston Villa

De la mateixa manera, openfootbal està composta pels següents dipòsits:

  1. https://github.com/footballcsv
  2. https://github.com/openfootball
  3. https://github.com/rsssf
  4. https://github.com/footballdata
  • jokecamp / FootballData: És una base de dada realitzada per jokecamp i que permet accedir a la seva informació ja sigui descarregant les seves dades mitjançant CSV o amb sol·licituds JSON. Està base de dades està orientada a la Lliga Premier, però també té força informació de l'Eurocopa.
  • soccerstats.usÉs una base de dades que recull múltiples repositoris de Github, en els quals es donen a conèixer dades de múltiples lligues de el Món, a més de tots els campionats mundials de futbol. EL analitzador de les bases de dades està escrita en Python i aparentment extreu informació de La Rec.Sport.Soccer Statistics Foundation (RSSSF).
  • engsoccerdata: És una base de dades que preveu molta informació de les Lligues i els Campionats d'Anglaterra, de la mateixa manera existeixen dades de Lligues Europees com (Espanya, Alemanya, Itàlia i Holanda). És un arxiu csv que posseeix tota la informació i que és actualitzada constantment.
  • awesome-football: És una col·lecció gran de dades de futbol (equips nacionals i internacionals, clubs, els horaris dels partits, jugadors, estadis entre d'altres). Està conformada per una llista de repositoris
  • soccer-cli: Aquest sens dubte ha de ser el favorit per als amants de la consola. Tots els resultats de el futbol des del teu terminal, gràcies a la meravelles de python.
  • Sports Open Data: És una api creada el 2015 per Paolo Riva i Riccardo Quatra, per suplir la manca de data especialitzada de la Lliga Italiana i que fos totalment lliure. Està excel·lent API ens proporciona una API JSON REST, la quin ens dóna la possibilitat de consultar, analitzar i gestionar les dades emmagatzemades a la base de dades de Sports Open Data. Aquesta organització té com a lema «Dades lliures creats pels usuaris per als usuaris».
  • football-data.org: És una magnífica RESTful API que conté moltes dades que són actualitzades constantment. Es pot adquirir una API KEY Gratuïta amb només registrar-se la qual a més li donarà suport CORS. Sens dubte és una API summament completa i madura amb un gran treball del seu creador, molts serveis i aplicacions ja la inclouen com referència per als seus serveis.

La possibilitat de tenir data actualitzada, organitzada, amb accés ràpid i fàcil fa d'aquesta una de les millors API Lliures referent a l'Futbol, ​​a més football-data està molt ben documentació, el que permet que la seva línia d'aprenentatge sigui molt ràpida.

Entre les funcionalitats que ens ofereix tenim:

/soccerseasons/
/soccerseasons/{id}/ranking
/soccerseasons/{id}/fixtures
/fixtures
/soccerseasons/{id}/teams
/teams/{id}
/teams/{id}/fixtures/

Algun exemples de les trucades que ofereix aquesta API són:

Exemple de sortida JSON per a informació d'Equips de Futbol:

{
   "_links":{
      "self":{
         "href":"http://api.football-data.org/v1/teams/5"
      },
      "fixtures":{
         "href":"http://api.football-data.org/v1/teams/5/fixtures"
      },
      "players":{
         "href":"http://api.football-data.org/v1/teams/5/players"
      }
   },
   "name":"FC Bayern München",
   "code":"FCB",
   "shortName":"Bayern",
   "squadMarketValue":"559,100,000 €",
   "crestUrl":"http://upload.wikimedia.org/wikipedia/commons/c/c5/Logo_FC_Bayern_München.svg"
}

Un cop fet aquest repàs per cadascuna de les API i Dates que he conegut de el món de l'Programari Lliure, ens posem mà a l'obra per tenir el nostre senzill i exemplar script en PHP que ens permeti veure algunes dades dels nostres equips i esdeveniments favorits.

El primer pas és instal·lar LAMP però també pots utilitzar nginx com servidor web, heu de tenir a la mà un editor de text, ja saben que m'agrada sublim text que encara que no és lliure funciona a Linux però vostès són lliures d'usar el que vulguin nano, notepadqq, atom, Scribes entre d'altres.

Me'n vaig ajudar d'una llibreria que acabo de conèixer phplib-football-data i que té una base per a la comunicació amb football-data, els vaig a ser sincer, abans de començar a escriure aquest article vaig pensar que anava a ser més complicat però està llibreria m'ha fet la vida molt fàcil, de manera que només explicarem el exemple que ells ens ofereixen i afegirem algun extra amb fins educatius.

El primer pas que realitzarem és clonar el repositori git d'aquesta llibreria.

git clone git://github.com/dfrt82/phplib-football-data.git

Ens situem a la carpeta de la llibreria i editem l'arxiu config.ini amb l'API KEY que obtenim a l'registranos a football-data i que arriba al nostre correu.

cd phplib-football-data/
sudo subl3 config.ini

baseUri = 'http://api.football-data.org/v1/';
authToken = 'YOUR_AUTH_TOKEN';

Aquest fitxer de configuració ens permetrà més endavant comunicar l'API amb la nostra aplicació.

Està Llibreria d'exemple està composta per 5 arxius important.

  • config.ini: Que guarda la informació de l'API i la quin en aquest pas ja tenim editat.
  • FootballData.php: Aquesta classe de servei encapsula l'API REST de football-data.org. És a dir construeix la comunicació entre l'aplicació i l'API, a més conté diversos mètodes que ens permetran consultar diverses dades de l'API com per exemple tota la temporada d'una lliga en específic.
  • Soccerseason.php: Aquesta classe implementa les trucades relacionades amb la informació dels partits i les lligues.
  • Team.php: Està classe implementa les trucades relacionades amb la informació dels equips.
  • index.php: Que és la classe principal i la que fa la crida a cada un dels mètodes que estan implementat a les classes abans explicades. Bàsicament és la classe que hem de tocar si volem canviar les dades a mostrar, per al nostre exemple prendrem l'estructura inicial i simplement la adaptarem a l'Eurocopa.

copa europea

Amb aquesta petita modificació que li vaig fer ja podem tenir els resultats de l'Eurocopa 2016, però sens dubte podem posar-nos més creatiu i anar afegint funcionalitats, cicles, consultes a altres api entre altres coses, que segurament més endavant els mostraré. Pels moments espero que ens mostrin les seves creacions.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Pedro Sanz va dir

    Hola, he estat llegint el teu blog, i em sembla que la pagina que esmentes football-data.org té bona pinta per a un projecte de servei web que estem dissenyant. Una gran dubte que em sorgeix i que no he sabut aclarir pel que he llegit és: com de actualitzades estan les dades en football-data.org, et dono un exemple del que em refereixo:

    Cap de setmana, partit Barcelona - Reial Madrid, diguem que el partit acaba a les 22:00 de la nit d'un dissabte amb 2-2. Llavors, Sabries aclarir-me quan estaria aquest resultat disponible per fer un request a l'API i poder usar aquesta info al servei web ?.

    El tipus de servei que estem dissenyant no és que requereixi d'informacion en temps real, però si els resultats de la jornada en qüestió estan disponibles dies o setmanes després de produir-se, llavors no seria interessant per a nosaltres.

    Una salutació.
    / Pere.

  2.   El Desenvolupador Web va dir

    Això és molt interessant Luigys, no entenc com Google no té el teu contingut més amunt ja que m'ha costat trobar referències de qualitat sobre APIs esportives. Com diu el company de baix, Football-Data té molt bona pinta. Moltes gràcies.