• Super User

    Script PHP per leggere un file JSON. autenticazione?

    Ciao a tutti,
    ho creato uno pagine in PHP che mi permette di leggere un Json generato da un URL remoto (un sito web al quale sono iscritto).

    Ovviamente se eseguo il file PHP nello stesso browser nel quale ho effettuato l'accesso al sito web sopra indicato riesco a leggere il JSON, altrimenti ricevo un XML contentente:
    [HTML]
    <Error><Message>Authorization has been denied for this request.</Message></Error>
    [/HTML]

    Dato che vorrei fare eseguire lo script da un CronJob, posso ovviare a questo problema?
    Oppure, visto che il sito web in questione, non fornisce API pubbliche, non c'è soluzione?

    Grazie.


  • User Attivo

    Ciao felino,

    di quale servizio si tratta?

    Se non mette API a disposizione, l'unico modo per estrarre i dati è con lo scraping. Io di solito utilizzo questa libreria https://packagist.org/packages/fabpot/goutte

    Fa il suo lavoro a patto che il codice della pagina da cui prelevare i dati non venga generato in maniera asincrona con AJAX. Ad esempio risultati.it è un sito il cui contenuto è generato in maniera asincrona.

    In quel caso Goutte non funzione ed è necessario utilizzare altre librerie tipo questa https://packagist.org/packages/symfony/panther


  • Super User

    E' un portale che visualizza dei contenuti, i quali sono renderizzati a partire da un JSON ottenuto tramite una chiamata AJAX.

    Vorrei riuscire a leggere il JSON da PHP ma ovviamente ottengo un errore di autenticazione.

    Sicuramente il web scraping potrebbe essere una soluzione, ma posso incorporarlo in un CronJob?

    Grazie.


  • User Attivo

    @felino said:

    Sicuramente il web scraping potrebbe essere una soluzione, ma posso incorporarlo in un CronJob?

    Si è possibile!


  • Moderatore

    guarda, la strada semplice è:

    • recupera il link di login e simula la chiamata POST che esegue la login, questa ti restituirà dei cookie, storicizzateli in un file di testo
    • richiama la pagina del json passandogli quei cookie

    il metodo da utilizzare è CURL invece di usare solo librerie che fanno il lavoro per te, ti consiglio lo studio di ciò che stai facendo.
    Poi se vuoi, posta il tuo codice sul forum che possiamo dargli una letta 🙂