Esporre le estrazioni del lotto sul proprio sito

Ho una mezza possibilità che mi affidino un sito in cui vorrebbero che comparissero le estrazioni del lotto (anche i risultati del Totocalcio ma affrontiamo una cosa alla volta) in tempo reale o quasi, comunque tabelle che si aggiornino autonomamente.

Quindi, come da titolo, come si dovrebbe procedere per esporre le estrazioni del lotto sul proprio sito?

O meglio, da quale fonte potrei attingere i dati necessari, è complicato? se po' fa?

 :bye:

inviato 10 anni fa
usecram
X 0 X

se po' fà, se po' fà....

2 strade:

1) web service: cerca un sito che offre il servizio attraverso un web service o simile. Attraverso SOAP o altra tecnica (spesso più banale) il tuo script PHP interroga un server remoto che gli fornisce i dati di interesse. Il servizio potrebbe essere erogato gratuitamente o a pagamento.

2) normale pagina di sito web: se trovi un sito che mostra le informazioni che desideri potresti "catturare" la pagina in questione con le istruzioni cURL, ed estrarre da tutto l'HTML preso, solo i dati che ti servono. L'estrazione può essere piòù o meno complicata in funzione della complessità della pagina internet che hai catturato. In generale si procede con espressioni regolari. Ovviamente se la pagina cambia formattazione o grafica potresti essere costretto a riscrivere il sistema di estrazione dei dati.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Non ti nascondo la mia totale ignoranza in materia.  O0

Dunque cominciamo con il prendere in considerazione la prima strada: ho cominciato a documentarmi e su un piano teorico ora so cosa è un webservice, però non mi è chiaro come si cerchi un sito che offra un servizio del genere.

Domanda banale lo so, ma essendo una problematica nuova...quali keyword usare nella ricerca di un sito simile?

Ne ho trovato uno che offre la possibilità di includere un codice che devo semplicemente copincollare e che mostra alcune delle informazioni che mi occorrono, però non è quello che intendevi, le possibilità di personalizzazione sono limitate e poi soprattutto voglio farlo io...

Insomma tu come cercheresti? ::)

risposto 10 anni fa
usecram
X 0 X

Qualche idea? (di tutte le cose che potevano chiedermi.... :tichedoff:)

risposto 10 anni fa
usecram
X 0 X

Forse ti conviene recuperare tutto dal sito della lottomatica:

www.lottomatica.it/home/index.html e la parte che ti interessa (ultime estrazioni) è:

table cellspacing="0" class="risultati">
    <tbody>

        
            
                
                    <tr class="bg1">
                
                
            
            <td class="left">Bari </td>
            <td> 37</td>
            <td> 10</td>

            <td> 19</td>
            <td> 39</td>
            <td> 43</td>
            </tr>
        
            
                
                
                    <tr class="bg2">
                
            
            <td class="left">Cagliari </td>

            <td> 44</td>
            <td> 42</td>
            <td> 68</td>
            <td> 12</td>
            <td> 65</td>

            </tr>
        
            
                
                    <tr class="bg1">
                
                
            
            <td class="left">Firenze </td>
            <td> 65</td>
            <td> 9</td>
            <td> 17</td>

            <td> 14</td>
            <td> 36</td>
            </tr>
        
            
                
                
                    <tr class="bg2">
                
            
            <td class="left">Genova </td>
            <td> 26</td>

            <td> 57</td>
            <td> 7</td>
            <td> 38</td>
            <td> 33</td>
            </tr>

        
            
                
                    <tr class="bg1">
                
                
            
            <td class="left">Milano </td>
            <td> 50</td>
            <td> 33</td>
            <td> 53</td>

            <td> 47</td>
            <td> 87</td>
            </tr>
        
            
                
                
                    <tr class="bg2">
                
            
            <td class="left">Napoli </td>
            <td> 65</td>

            <td> 66</td>
            <td> 89</td>
            <td> 4</td>
            <td> 40</td>
            </tr>

        
            
                
                    <tr class="bg1">
                
                
            
            <td class="left">Palermo </td>
            <td> 48</td>
            <td> 34</td>
            <td> 53</td>

            <td> 44</td>
            <td> 67</td>
            </tr>
        
            
                
                
                    <tr class="bg2">
                
            
            <td class="left">Roma </td>
            <td> 14</td>

            <td> 31</td>
            <td> 15</td>
            <td> 28</td>
            <td> 39</td>
            </tr>

        
            
                
                    <tr class="bg1">
                
                
            
            <td class="left">Torino </td>
            <td> 33</td>
            <td> 45</td>
            <td> 50</td>

            <td> 5</td>
            <td> 16</td>
            </tr>
        
            
                
                
                    <tr class="bg2">
                
            
            <td class="left">Venezia </td>
            <td> 37</td>

            <td> 87</td>
            <td> 43</td>
            <td> 8</td>
            <td> 56</td>
            </tr>

        
            
                
                    <tr class="bg1">
                
                
            
            <td class="left">Ruota Nazionale </td>
            <td> 18</td>
            <td> 49</td>
            <td> 26</td>

            <td> 21</td>
            <td> 82</td>
            </tr>
        

        <tr><td class="left"><sup>(dati ufficiali)</sup></td><td colspan="5" > </td></tr>
    </tbody>
</table>
risposto 10 anni fa
LonelyWolf
X 0 X

Alludi alla seconda strada proposta da Gianni?

2) normale pagina di sito web: se trovi un sito che mostra le informazioni che desideri potresti "catturare" la pagina in questione con le istruzioni cURL, ed estrarre da tutto l'HTML preso, solo i dati che ti servono. L'estrazione può essere piòù o meno complicata in funzione della complessità della pagina internet che hai catturato. In generale si procede con espressioni regolari. Ovviamente se la pagina cambia formattazione o grafica potresti essere costretto a riscrivere il sistema di estrazione dei dati.

Se è così mi pare che è necessario che la libreria cURL sia installata nello spazio web giusto?

Sto già cercando...se ne sei a conoscenza mi sapresti consigliare qualche tutorial a riguardo (a parte quello che ho già visto su questo sito e la sezione della documentazione ufficiale)?

Resterebbe comunque il problema che ad ogni modifica delle mie "fonti" dovrei riadattare il sito.

 :bye:

risposto 10 anni fa
usecram
X 0 X

Purtroppo non saprei, non sono funzioni che conosco o su cui mi sono documentato.

Sinceramente ho controllato il sito di lottomatica se avesse qualche feed e poi controllando il sorgente della pagina mi è sembrato semplice: una volta trovata la tabella class=risultati sei a buon punto.

E sì, devi avere le libcurl installate.

risposto 10 anni fa
LonelyWolf
X 0 X

Mi era tornato in mente che si può fare anche con fopen() e guardando gli esempi sul manuale php è abbastanza semplice, ma non ottimizzato, eccoti un esempio, l'ho provato e funziona, restituisce l'intera struttura della tabella però.

<?php
$url = 'http://www.lottomatica.it/home/index.html';
$fp = fopen($url, 'r');
$pagina = '';
while (!feof($fp)) {
  $pagina .= fread($fp, 8192);
}
fclose($fp);

//togliamo quello che sta prima della tabella
$posizione = strpos($pagina, "<table cellspacing=\"0\" class=\"risultati\">");
$pagina = substr($pagina,$posizione);

//togliamo quello che sta dopo della tabella
$posizione = strpos($pagina, "</table>");
$pagina = substr($pagina,0,$posizione+8);
echo $pagina;
?>
risposto 10 anni fa
LonelyWolf
X 0 X

Così sarebbe relativamente semplice realizzare ciò che mi serve (non so perché pensavo che allow_url_fopen fosse disabilitato di default).

Grazie farò le prove del caso.

risposto 10 anni fa
usecram
X 0 X

allow_url_fopen   "1"   PHP_INI_SYSTEM   PHP_INI_ALL in PHP <= 4.3.4. Available since PHP 4.0.4.

E può essere ambiato solo nel php.ini o httpd.conf, vedi un po' come sta messo.

Il mio host è a 1, infatti la prova l'ho fatta lì!

Fammi sapere, al limite ci studiamo le curl se le hai.

risposto 10 anni fa
LonelyWolf
X 0 X

Appena mi danno l'accesso al server (già hanno acquistato lo spazio) ti faccio sapere sicuramente.

Grazie ancora  :bye:

risposto 10 anni fa
usecram
X 0 X

Dimenticavo una cosa importante, ovviamente in questo modo se cambiano la struttura del sito alla lottomatica devi adattare lo script, potresti aggiungere un controllo qua:

$posizione = strpos($pagina, "<table cellspacing=\"0\" class=\"risultati\">");

Se $posizione è 0 o false fermi tutto lo script e metti un messaggio con Non disponibile o simile.

Se poi fai mandare una mail a chi di competenza è meglio.

risposto 10 anni fa
LonelyWolf
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda