FreshRSS, forzare il protocollo RSS su ogni sito

Trenitalia

Ero in macchina, avevo comprato i biglietti del treno qualche ora prima. Arrivo alla stazione e un operaio mi dice che ci sarebbe stato sciopero. Non è stato un problema non poter prendere il treno, però mi sono accorto del fatto che ho comprato i biglietti senza che nulla mi dicesse che in quella giornata ci sarebbe stato sciopero. Una cosa ancora più triste e scandalosa è che non c’è modo per ricevere delle notifiche sugli scioperi o sulle modifiche al traffico quando vuoi prendere un treno di Trenitalia (Che ricordo essere la principale compagnia ferroviaria italiana completamente posseduta da una società a controllo pubblico)

Comunque non è Trenitalia di cui voglio parlare, anche se l’unico modo per rimanere informati sul traffico è quello di accedere a una loro pagina HTML, o dal sito o dall’app (quindi dal sito). Non c’è modo di essere aggiornati né con delle notifiche né con delle mail. Non ci sta nemmeno la possibilità di filtrare le informazioni per regione. Cioè, in quell’unica pagina HTML vi beccate di tutto: dalle modifiche al traffico in Lombardia alle modifiche al traffico in Sicilia. È un po’ triste e imbarazzante.

FreshRSS

Dopo 6 ore al computer dalla sconfitta alla stazione ho imparato ad usare uno strumento chiamato FreshRSS. Usa, fra le altre cose, un linguaggio che si chiama XPath, che serve in sostanza per individuare i nodi all’interno di un documento HTML o XML. Ho capito come fare il parsing di tante pagine HTML per poi ottenere dei feed RSS da poter consultare dalla mia app.

FreshRSS nasce principalmente come aggregatore di feed che si possono prendere da parti diverse. Supporta come fonti HTML, XML, JSON e altri feed RSS/Atom a loro volta. Ed è bellissimo, perché oltre a tutto il discorso del linguaggio di parsing, che già dà molto controllo su quello che si può prendere, dà anche tanta possibilità sui filtri e sulle query di ricerca interna poi fare per filtrare ulteriormente i contenuti e di filtri ce ne stanno tanti. Quello che puoi fare, quindi, è salvare delle ricerche che usano delle determinate query che possono filtrare per titolo, testo, tag, intervalli di date, autori, ID. FreshRSS ti consente di esportare queste query, quindi il feed RSS che ne esce fuori è molto molto raffinato e precisamente per come vuoi. Non posso dire quello che ho fatto con Fresh RSS e ne parliamo fra un po’, però una delle poche cose che posso dire di aver fatto con Fresh RSS è stata aver filtrato via delle parole chiave in un feed rss già esistente.

Termini di Servizio dei siti (ToS)

Come vi dicevo, non c’è piena trasparenza da parte mia perché ci sono delle cose chiamate termini di servizio dei siti web. Si possono leggere praticamente ovunque su internet. Molti di questi vietano l’utilizzo di strumenti come FreshRSS. Io non ho ben capito se violare i termini di servizio di un sito web sia direttamente anche illegale, però è chiaro che è qualcosa di illecito. Tra l’altro FreshRSS è uno strumento che va hostato.

Io sono stato molto fortunato a trovare un’istanza italiana di FreshRSS a cui mi sono iscritto, mi sono registrato e che mi dà la possibilità di vivere la mia vita molto meglio.

Aggirare i sistemi?

Le aziende implementano diversi ostacoli per far sì che tu non possa usare tool come freshRSS, ma gli strumenti per aggirare questi sistemi sono molteplici. Cookies di sessione custom, header custom con user agent diversi, proxy HTTP, Socks, la qualsiasi. Sicuramente il materiale su queste cose è di dominio pubblico online, e si trovano un sacco di guide su come fare web scraping in maniera sostenibile nel tempo. Sicuramente però non è sostenibile a livello etico e morale, perché ti ritrovi a prendere contenuti da un’azienda che te lo dice in tutti i modi che non vuole che tu prenda quei contenuti in quel modo.

Io, per esempio, ho visto il codice HTML di una pagina Instagram. È chiaro che Instagram si impegna per far sì che tu non possa usare il codice sorgente della pagina. Dopo le 6 ore che ho investito per capire un po’ tutto sto discorso (Prima i servizi RSS li usavo solo pronti e buoni), ho capito che quella non era stata una vittoria. Ma mi ero sentito molto molto bene e lì per lì ho pensato: “Wow, posso consumare contenuti di tutta internet”.

Conclusioni

Non ho delle vere e proprie conclusioni su quello che c’è da fare. Sono molto contento di aver trovato un tool come FreshRSS e sono davvero tanto contento di aver trovato delle istanze italiane di questa roba.

Quello che vorrò fare prossimamente sarà usare una API per far sì di ottenere i dati in JSON (che FreshRSS) può leggere per far sì di avere il meteo in formato RSS. Secondo me non è impossibile. Dopo un po’ mi romperò il cazzo di assecondare tutta internet affinché le cose vadano fatte male. Alla prossima!