Dati Trenitalia

search?q=&btnI=lucky

Qualche giorno fa, in Stazione Centrale a Milano, mi cade l'occhio su uno dei monitor di quelli che mostrano lo stato delle partenze e degli arrivi. Ho notato quel particolare monitor non perché dovessi partire o attendere qualcuno in arrivo (infatti ero appena arrivato in stazione e mi stavo dirigendo alla Metro) quanto perché era visibile (mancava la cornice oscurata) l'intera finestra del PC che gestisce il sistema di visualizzazione… :-)

Ergo ho potuto vedere che sotto c'è un sistema Windows (e si sapeva), che usano Internet Explorer (peggio per loro) e che l'URL per visualizzare i dati è: https://picweb.rfi.it/arrivipartenze/Visualizzazione_monitor_pubblicita_SI.asp (quindi il sistema è pure sviluppato in ASP, della serie “facciamoci del male”). Poi ho provato anche qualche altra combinazione e ad esempio questa funziona.

Ho lanciato l'informazione su qualche social network (FB, Twitter, G+) stimolando esperimenti (hacking) di estrazione dei dati, un paio di amici hanno risposto e qui riporto qualche risultato, ottenuto grazie a Gianluca Varisco e Pierlauro Sciarelli.

Il problema più grosso, guardando e studiando il sorgente HTML della pagina ASP, è che accetta parametri in POST e, pare, non in GET. Ergo (cfr. anche http://stackoverflow.com/questions/325929/is-the-only-way-of-passing-post-parameters-in-html-through-a-form ) bisogna crearsi una minipagina HTML per poter accedere alla pagina degli avvisi usando i parametri opportuni, ad es:

<html>
<form action="https://picweb.rfi.it/arrivipartenze/Visualizzazione_monitor_pubblicita.asp" method="post">
<input type="hidden" name="idLocalita" id="idLocalita" value="1604">
<input type="hidden" name="tipo" id="tipo" value="Partenze">
<input type="hidden" name="nomeStazione" id="nomeStazione" value="Milano+Centrale">
<input type="submit" value="Submit">
</form>
</html>

In realtà basta solo l'id della località su cui viene fatta la query, per cui la stazione di Milano Centrale più benissimo diventare la stazione di pippo e topolino, es. con un nomeStazione hardcoded:

...
<input type="hidden" name="nomeStazione" id="nomeStazione" value="Stazione di pippo e topolino">
...

Quindi il problema ulteriore è quello di ottenere la lista degli ID (località, stazione, etc.), Pierlauro mi scrive:

Mi sono messo a giochicchiare un po' sul sito RFI trovando il modo di scoprire idLocalita e nomeStazione che sono i due parametri da passare al form della pagina. Basta cercare la stazione desiderata qui (http://www.rfi.it/cms/v/index.jsp?vgnextoid=f3fe155031639210VgnVCM1000004016f90aRCRD) e poi estrarre i parametri dall'url passati tramite GET. Ad esempio la stazione di Milano Centrale ha id 1604 e nome “Milano+Centrale”

Gianluca invece ha trovato i due URL interessanti:

Provate a seguirli…

Datemi feedback se trovate altro, GRAZIE!