Prelevare risultati da siti esterni (API?)

  • Creatore Discussione Creatore Discussione Fossa
  • Data di inizio Data di inizio

Fossa

Nuovo Utente
26 Nov 2011
11
0
0
Salve a tutti, ho bisogno di una delle vostre pillole di saggezza :fonzie:

Sto creando un sistema di scommesse calcistiche non a soldi in PHP che si appoggia su un db MySQL e vorrei fare in modo che i risultati delle varie partite siano presi da siti esterni (gazzetta.it, eurosport.it o similia) e che vengano così confrontati automaticamente con le scommesse inserite dagli utenti.

In parole povere, il server mi deve scrivere direttamente chi ha vinto e chi no senza che sia io a fare un controllo manuale.

Saprei impostare il tutto se fossi io a scrivere i risultati e il server deve solo confrontarli (basta lavorare sul MySQL) con quelli degli utenti, ma vorrei che li prelevasse da altri siti direttamente.

Devo usare le API vero?
Ci sono siti che ne mettono a disposizione alcune ideali per il mio scopo?

Se sì, qualcuno di voi sarebbe così gentile da spiegarmi come fare visto che non ho mai lavorato con esse?

Grazie mille per qualsiasi risposta ;)
 
Qui si trovano un po' di informazioni, ma sembrano tutti siti stranieri, non so se conterranno anche informazioni su eventi sportivi italiani.
Se non trovi quello che cerchi, dovrai estrapolare i dati dal codice HTML della pagina (Web scraping). Su Mr. Webmaster c'è un articolo interessante al riguardo.
 
Qui si trovano un po' di informazioni, ma sembrano tutti siti stranieri, non so se conterranno anche informazioni su eventi sportivi italiani.
Se non trovi quello che cerchi, dovrai estrapolare i dati dal codice HTML della pagina (Web scraping). Su Mr. Webmaster c'è un articolo interessante al riguardo.

Innanzitutto grazie per la veloce risposta.

Avevo già guardato il primo link precedentemente ma non sono riuscito a trovare nulla, mentre ti ringrazio per il Web Scraping perchè non ne conoscevo proprio l'esistenza e mi potrebbe tornare utile come ultima, disperata, possibilità :)

Ho trovato questo sito che fornisce tutte le API relative al calcio, ma ho bisogno di aiuto per capirne il funzionamento.
Per prima cosa, è il sito adatto a me (di API ne so zero)?
Praticamente per avere accesso alle API, è richiesto una API Key che viene fornita dall'amministratore al momento dell'iscrizione, giusto?

Al momento della registrazione, mi chiede gli IP che avranno accesso al servizio, ma cosa ci devo mettere? E in useragent?

Grazie ancora :)
 
Come IP devi mettere quello del tuo dominio. Puoi scoprire l'indirizzo tramite questo servizio.
In user agent puoi mettere qualunque cosa vuoi (anche se te lo devi segnare), e poi assegnerai lo stesso valore all'header durante le richieste effettuate tramite cURL.
Grazie mille nuovamente :)

Nell'attesa di una risposta, ho googlato un po' e ho scoperto che i cURL su Altervista non fungono, ergo devo cambiare necessariamente hosting.
Stessa cosa per il Web Scraping: ho cambiato e funziona alla grande ;)

Personalmente cosa mi consigli, sfrutto le API di quel sito o vado con lo Scraping? :fonzie:
 
Se ha delle API valide non ci sono dubbi: usale. Sono più veloci, più semplici da implementare, indipendenti dalla struttura grafica del sito, e soprattutto sei sicuro che il proprietario del sito voglia lasciarti usare i suoi dati. Se non ci sono altre soluzioni, potresti usare il Web scraping.
 
Se ha delle API valide non ci sono dubbi: usale. Sono più veloci, più semplici da implementare, indipendenti dalla struttura grafica del sito, e soprattutto sei sicuro che il proprietario del sito voglia lasciarti usare i suoi dati. Se non ci sono altre soluzioni, potresti usare il Web scraping.

Dal momento che il sito delle API non mi ha risposto, mi vedo costretto a servirmi del Web Scraping.

Se inserisco manualmente le squadre che giocano, lo script naviga fino alla pagina di un giornale famoso sitogiornale.it/calcio/$squadra1-$squadra2.php e preleva il risultato dove gli dico io (lo identifico grazie ai div): fin qui tutto bene.

Ma se voglio che lo script mi prelevi da solo le squadre che giocano in una determinata giornata, ho qualche problema perchè i div sono gli stessi per ogni squadra (es <div name="squadra">) e non posso differenziare una dall'altra. Come faccio a ripetere il tutto
PHP:
//Uso il sito della serie a perchè il calendario è diviso in giornate e non tutto assieme
$uri = 'http://www.legaseriea.it/it/serie-a-tim/campionato-classifica';
$get = file_get_contents($uri);
$pos = strpos($get, "<div name=\"squadra\">");   
$squadra = substr($get,$pos,6);
in modo che la funzione strpos() non si fermi solo al primo risultato ma mi restituisca (magari in array) tutte le squadre in ordine di come le ha trovate?

Ho provato con un ciclo for ma nulla, la funzione non "scala" e si ferma sempre al primo risultato.

Spero di essere stato chiaro nella spiegazione :fonzie:
 
Non supporta le PCRE?! Sì, qualcosa che puoi fare c'è: cambia host! È assurda una cosa del genere...
Se proprio non c'è altra soluzione, puoi usare la libreria per la manipolazione degli elementi DOM.

Fammi sapere. Se ti è possibile cambiare host te lo consiglio vivamente, comunque.
 

Discussioni simili