Orari trenord, corri solo quando ce n’è bisogno

Hai presente quando corri in stazione per prendere il treno al volo e, quando arrivi, ti accorgi che il treno ha 12 minuti di ritardo?

Marzo 30, 2017

Sono un pendolare sui treni delle Ferrovie Nord, tutti i giorni vado avanti e indietro tra Cusano e Milano. I ritmi di noi pendolari sono serrati, perché siamo una categoria costretta alla precisione. Abbiamo gli intertempi memorizzati per gli angoli delle strade: quando giro in via Marconi, per esempio, devono essere al massimo le 8:24 se no per prendere il treno devo correre.

Correre anche solo un minuto al mattino è davvero una cosa antipatica, ma quel minuto di corsa mi fa raggiungere il treno e mi permette di recuperare un’ora che ormai considero preziosa. La cosa che trovo decisamente fastidiosa è arrivare in stazione di corsa e vedere che il mio treno è in ritardo di 12 minuti. Dodici minuti?!? Ma allora potevo camminare!

Dato che Trenord (la società che muove i treni dalle mie parti) è abbastanza solita giocare questi scherzi e dato che sono un programmatore, mi sono costruito uno spider, cioè un software automatico che preleva la mia posizione col GPS del telefono e cerca su Internet le informazioni per ricostruire il tabellone dei treni che c’è nella stazione più vicina. Senza fronzoli, solo il minimo indispensabile per decidere: corro? SI. NO.

Volete usarlo anche voi? Il link è più sotto, qui puoi vedere due schermate:

 

Come si usa il tabellone

Dal vostro cellulare cliccate su questo link orari Trenord e troverete la schermata con l’elenco alfabetico delle stazioni. Cercate la stazione che preferite o cliccate sul bottone “Vicina” in alto a destra. Salvate il collegamento nella Home del vostro cellulare. Così mentre camminate potrete cliccare sull’icona e aprire subito il tabellone della stazione. Ricaricate la pagina per aggiornare gli orari.

I treni scritti con un colore più scuro sono andati, sono quelli il cui orario di partenza più il ritardo fa un’orario che è già passato.

In alto vi sono anche anche tre bottoni verdi per aprire le pagine di “News” e “Avvisi” di Trenord dove vengono segnalati gli scioperi del personale dei treni, e il link alla pagina “check linee” che riporta lo stato delle linee di Trenord. Se  c’è un problema grosso sulla linea lì viene indicato.

Orari: treni stazioni Trenord Ferrovie Nord

Come è fatto lo spider del tabellone degli orari delle Trenord

Lo spider utilizza i dati del sito my-link.it che – per essere buoni – è un sito un po’ demodè,  su cui si possono trovare quasi tutte le informazioni utili per costruire il tabellone: i numeri dei treni (che in realtà ai pendolari non servono), le destinazioni, gli orari di partenza e di arrivo e i ritardi. Mancano i nomi delle linee e le coordinate GPS delle stazioni. Tutti i dati, però, vanno riorganizzati perché su Mylink non sono molto chiari.

Online ho trovato un open data che fornisce le posizioni delle stazioni delle ferrovie Nord sotto forma di coordinate di latitudine e longitudine e ho quindi provveduto ad integrare questi dati nello spider. Il nome delle linee S1, S2, etc. è stato ricavato dalle stazioni iniziali e finali dei treni.

Il recupero delle informazioni e parte dello scraping, cioè l’attività di estrazione dei dati dal codice HTML delle pagine di Mylink sono effettuati sul server con un linguaggio che si chiama PHP e tramite la classe Mini Bots, che ha delle funzioni che semplificano l’acquisizione di pagine web e l’estrazione dei dati dal codice HTML.

Lo spider cerca per stazione utilizzando il form di ricerca di Mylink e per ogni treno indicato tra quelli riportati nella pagina della stazione recupera i dati seguendo i link presenti nei risultati di Mylink, così senza digitare nulla si può vedere subito il tabellone.

Quando si preme sul bottone “Vicina” viene letta la posizione GPS dal vostro cellulare e viene calcolata la distanza tra voi e le stazioni.

Individuato il nome della fermata più vicina viene effettuata la ricerca per ricostruire il tabellone della stazione.

Problemi e cose da migliorare

Il software non è mai perfetto.
I ritardi non sempre sono precisi e spesso non coincidono con quelli indicati nei monitor delle stazioni, ma se siete dei pendolari sapete benissimo che anche i minuti indicati nei tabelloni in stazione non sono sempre corretti. Quindi forse quelli di Mylink sono più precisi (è da verificare però).

Nel 2015 la stazione di Cusano Milanino è stata accorpata con quella di Cormano, diventando così la stazione di Cusano Milanino-Cormano. Purtroppo è contemporaneamente sparita da MyLink, dove non ci sono i dati né per i passaggi dei treni da Cusano, né da Cormano, né dalla nuova stazione di Cusano-Cormano. Pare che sia finita nel sottosopra.

Pertanto se siete a Cusano e al mattino dovete andare verso Milano, allora controllare il tabellone della stazione di Paderno Dugnano, e considerate 3 minuti in più. Questa correzione/estrapolazione potrebbe essere implementata prossimamente.

Sei un programmatore? Se vuoi il sorgente per ampliare e/o migliorare il tool può contattarmi all’indirizzo: pons@rockit.it

 

Author

PHP expert. Wordpress plugin and theme developer. Father, Maker, Arduino and ESP8266 enthusiast.

Recommended

Find values recursively inside complex json objects in PHP

A PHP function to to quickly search complex, nested php structures for specific values.

Dicembre 18, 2022

Come realizzare in PHP un bot per il controllo di accesso ad un gruppo Telegram

Ho raccolto in questo post una serie di appunti per la realizzazione di un bot di controllo di un gruppo Telegram, non è un vero e proprio tutorial, ma è sicuramente utile per ripercorrere il progetto.

Dicembre 9, 2022

Hacking del sistema di irrigazione Claber

Modificare il sistema di irrigazione della Claber per utilizzarlo con Arduino e una app realizzata ad hoc

Novembre 1, 2019

Twitter counter no longer works

Since 20 of November 2015 the twitter button has changed. This is the new Twitter sharing button, as you can…

Novembre 23, 2015

Scraping content with PHP as if it was jQuery

Building a spider or a bot needs some knowledge of regular expressions, you must know and use preg_match or preg_match_all…

Dicembre 8, 2013

Get instagram data without official api in PHP

Instagram has an official API to interact with its database of images and users. If you have enough time to…

Dicembre 3, 2013