Indice

  1. Creare un feed di una qualunque pagina web
  2. Offrire aggiornamenti via e-mail di una qualunque pagina web

N.B. Questo articolo è lungo: se avete sonno, siete poco solerti o preferite avere relazioni sociali, fatevi (e fatemi) il favore di non leggerlo. Grazie.

Creare un feed di una qualunque pagina web

RSS (acronimo di RDF Site Summary ed anche di Really Simple Syndication) è uno dei più popolari formati per la distribuzione di contenuti Web; è basato su XML, da cui ha ereditato la semplicità, l’estensibilità e la flessibilità. RSS definisce una struttura adatta a contenere un insieme di notizie, ciascuna delle quali sarà composta da vari campi (nome autore, titolo, testo, riassunto, …).

Quando si pubblicano delle notizie in formato RSS, la struttura viene aggiornata con i nuovi dati; visto che il formato è predefinito, un qualunque lettore RSS potrà presentare in una maniera omogenea notizie provenienti dalle fonti più diverse. [...]

RSS, su Wikipedia Italia

Atom è un formato di documento basato su XML per la sottoscrizione di contenuti web, come blog o testate giornalistiche. È basato sull’esperienza delle varie versioni del protocollo lanciato da Netscape, RSS. [...]

Atom, su Wikipedia Italia

I feed, che li usiate o meno, sono un mezzo di trasmissione delle informazioni tanto potente quanto utile. Prima di arrivare al cuore dell’articolo, proverò a delineare, senza indulgere troppo in tecnicismi, a cosa servono e perchè può essere utile crearne di propri.

Se non avete idea di come si comporti un feed, fate appello al vostro modello attuale di ricerca delle informazioni su Internet. I passaggi da voi compiuti non dovrebbero essere troppo diversi da questi:

  1. Apro il browser.
  2. Visito il sito del mio motore di ricerca preferito.
  3. Inserisco delle parole chiave.
  4. Se ho fortuna, trovo proprio quello che mi serve, e magari mi salvo il link nei segnalibri. Altrimenti torno al punto 3, e continuo a sperare.

Supponendo che sappiate sempre scegliere le giuste parole chiave, non dovreste mai avere problemi (io a volte ne ho).

Esiste, però, un altro paradigma di acquisizione delle informazioni che torna molto utile quando non si stanno cercando quelle informazioni, ma si sta tentando, più prosaicamente, di acquisirne, per sfruttarle magari in un secondo tempo. Questo è il paradigma di un feed: non devo essere necessariamente io a cercare le informazioni, quanto queste ultime a venire da me.

Un feed, di solito, contiene tutto (o una parte) del contenuto del sito che lo genera, e viene controllato da un’applicazione, un lettore o aggregatore di feed, ad intervalli regolari.  Gli aggregatori possono essere applicazioni esclusivamente dedicate a questo scopo, integrate in altre (ad esempio Windows Internet Explorer 7.0+, Opera 8.0+, Mozilla Firefox 1.0+) o ancora basate sul web.  Una lista abbastanza completa di aggregatori è disponibile a questo indirizzo.

In ogni caso, quando un nuovo elemento compare all’interno di un feed, l’utente riceve una notifica attraverso il proprio aggregatore; starà poi a lui decidere se leggere il nuovo contenuto in quel momento, più tardi, o mai.

Provate ad iscrivervi, che so io, ai feed di Ars Technica (scegliendone quanti ne volete), o de la Repubblica; il momento in cui riuscirete a giostrarvi tra la mole di informazioni a vostra disposizione sarà anche quello in cui non potrete più fare a meno dei feed.

Nella stragrande maggioranza dei casi, la creazione di un feed avviene “lato server”: per i profani, questo significa che chi vi fornisce la pagina web si premura di generare il feed per voi, che dovrete soltanto iscrivervi, copiando il link fornito nella pagina nel vostro aggregatore; se poi si usa un sistema di gestione dei contenuti come Drupal,Joomla, Movable Type o WordPress, la generazione dei feed può addirittura avvenire automaticamente, e contestualmente all’inserimento di nuovi contenuti. Se, poi, il vostro browser è uno di quelli citati prima, o comunque supporta in qualche modo l’interpretazione del tag
<link rel=“alternate” type=“application/rss+xml” title=“Feed” href=“http://feed/”/>

nel caso di feed RSS, o, nel caso di feed Atom,

<link rel=“alternate” type=“application/atom+xml” title=“Feed” href=“http://feed/” id=“auto-discovery”/>

vi sarà data la possibilità di iscrivervi agli aggiornamenti tramite il browser stesso (ad esempio tramite i Segnalibri Live di Mozilla Firefox, o tramite Opera M2).

Purtroppo, nel caso di siti statici, o dove, comunque, non è facile/praticabile installare uno script che generi il feed da servire all’utente - o pensate davvero che ci sia qualcuno così generoso verso di voi da crearsi a mano un file XML ogni volta che aggiorna il proprio sito? :-D

Per fortuna, leggendo una pagina che ho segnalato qualche giorno fa, ho trovato Feed43. Questo sito permette, gratuitamente, di creare un feed RSS a partire da una pagina HTML qualunque che presenti sufficienti regolarità nel proprio codice. Cercheremo di capire fra un po’ cosa significhi quest’ultima espressione.

Prendete il sito del mio corso di laurea, http://www.csai.unipa.it/cclinfo/ . Questo sito dinamico è stato sviluppato con la fetida accoppiata ASP + Access, e rappresenta una delle poche “isole felici” Microsoft dopo che la mia Università è passata a CentOS. Tralasciando ogni commento sull’opportunità di una tale soluzione, consideriamo la sezione “News degli ultimi 15 giorni”: il nostro obiettivo sarà creare un feed dei contenuti di questa sezione, in modo tale da non dover tornare troppo spesso sul sito per sapere quel che succede nella mia facoltà.

www.csai.unipa.it/cclinfo - News degli ultimi 15 giorni

Uno screenshot della sezione in esame scattato qualche giorno fa

Esaminiamo attentamente la sezione: si può notare come ogni notizia segua uno schema ben preciso:

  1. Data
  2. Titolo (Autore)
  3. Corpo della notizia
  4. Linea orizzontale

Accorgersi visivamente di questa piccola cosa ci aiuterà a ravanare più velocemente nel codice della pagina per ottenere quello che vogliamo.

È giunto il momento di iscriversi a Feed43; tralasciando questi pochi, triviali click, vediamo di descrivere i quattro passi fondamentali per la creazione di un feed tramite il nostro servizio.

Feed43 - Step 1 - New feed - Source page address

Step 1 - Source page address

Il primo passaggio è abbastanza agevole: bisogna inserire l’indirizzo completo della pagina da esaminare, ed il suo codepage. Per quei documenti HTML non necessariamente ben formati, ma comunque progettati con un minimo di rispetto per l’utente finale, non è necessario specificare esplicitamente quest’ultimo, dacchè possiedono un metatag del tipo

<meta http-equiv=“Content-Type” content=“text/html; charset=utf-8″>

se la pagina utilizza il set di caratteri Unicode, o, comunque, recante il set scelto dall’estensore della pagina. Quando questo tag, che è assolutamente facoltativo, non viene specificato, sarà il browser a decidere, sulla base delle preferenze dell’utente, quale set di caratteri utilizzare - o, in alternativa, ”tirando ad indovinare”. Il guaio è che bot come quello di Feed43, progettati per fare bene il loro lavoro e non per partecipare ad un quiz a premi, non hanno capacità di “predizione” molto accurate - cosa che provoca gravi mal di testa nel caso di pagine scritte in lingue piene di caratteri che non fanno parte del subset ASCII comune un po’ a tutte le lingue occidentali, quali i caratteri accentati (non mi esprimo sulle lingue orientali, sia per quel che riguarda i set nativi che Unicode, perchè non ho provato).

Nel mio caso, giusto per non smentire l’aura di correttezza e serietà del dipartimento, di tale tag non v’è traccia, e ho dovuto specificare il dato mancante a mano. In questi casi, si procede per prove ed errori  :-(

Ora viene la parte più difficile. Ricordate quando prima abbiamo evidenziato la struttura di massima della parte di pagina che ci interessava? È ora di ritrovare quella struttura all’interno del codice della pagina.

<a name=“avv1364″></a><tr><td align=“left”><font color=“navy”><u>Thursday, December 20, 2007 ore 08:47</u>
<br><b>Recupero ore Sistemi Operativi A.A. 2007/08</b> (<i>Haris Dindo</i>)<br>
<br>Come concordato a lezione, il recupero delle lezioni/esercitazioni di Sistemi Operativi avrà luogo nei giorni

17 gennaio

(dalle 10 alle 12, e dalle 15 alle 18) e 18 gennaio (dalle 10 alle 12). Le lezioni si terranno in aula A320.<br>

<hr width=“100%” color=“navy” size=“1″ style=color=#ea9930;>

Questa è una notizia-tipo. Vediamo un po’ che c’è dentro:

  • Un ancora (”avv1364″). Potremo usarla come riferimento per far localizzare direttamente la notizia sulla pagina a partire da una voce del feed.
  • I tag che introducono una riga di una tabella.
  • La data, sottolineata.
  • Interruzione di riga.
  • Il titolo della notizia, in grassetto.
  • Tra parentesi, in corsivo, l’autore dell’inserimento.
  • Due ritorni a capo, il corpo della notizia, un ritorno a capo.
  • Una linea orizzontale.

Che ci crediate o meno, siamo vicini al bandolo della matassa. Abbiamo infatti individuato le informazioni fondamentali da mettere in una voce del feed. Dobbiamo solo comunicarlo al bot di Feed43, come segue:

Feed43 - Step 2 - Extraction rules

Step 2 - Extraction rules

Se avete la pazienza di riflettere e di provare, non è difficile. È tutto un gioco di {%} e {*} da inserire nel campo Item (repeateable) Search Pattern. {%} prelevare tutto il testo compreso tra ciò che sta alla sua destra e quello che sta alla sua sinistra; {*} indica, invece, con modalità identiche, di saltare tutto ciò che è compreso tra il markup ai suoi estremi. Si faccia click su ? per ulteriori esempi; si consideri, se necessario, la possibilità di restringere il campo d’azione del bot di Feed43 - cosa richiesta nell’esempio per filtrare gli “avvisi straordinari”.

Se tutto è andato bene, noteremo che, alla pressione di Extract, ci vengono presentati nella casella di testo sottostante, tanti token del tipo {%n} quante volte abbiamo utilizzato il markup {%}. Questi token sono gli elementi che ricombineremo opportunamente al passaggio 3:

Feed43 - Step 3 - Define output format

Step 3 - Define output format

I valori da inserire in RSS feed properties sono a totale discrezione dell’utente, e serviranno in due occasioni:

  1. Nella landing page del feed, che verrà visualizzata quando si visita l’indirizzo del feed generato con un browser in grado di interpretare i documenti XML.
  2. In un aggregatore (solo Feed Title e Feed Link), per segnalare all’utente da chi proviene il feed, e come visitare il sito ”originale”.

Arrivare a riempire la sezione RSS item properties, è, invece, l’unica ragione di questo enorme casino. Se siamo stati bravi, abbiamo generato un token apposito per ogni parte saliente di un elemento del feed: il suo titolo, il link al post originale di riferimento (l’ancora che abbiamo visto prima serve a questo :) ) ed il contenuto dell’elemento. Resta sottinteso il fatto che se ne abbiamo generati di più non c’è alcun problema: l’importante è aver trovato quelli essenziali - potremo poi dare sfogo alla nostra “fantasia” per trovare il modo di aggiungere anche gli altri.

Non ci resta che l’ultimo passaggio:

Feed43 - Step 4 - Get your RSS feed

Step 4 - Get your RSS feed

Se l’indirizzo del feed ci piace, possiamo copiarlo così com’è, altrimenti possiamo cambiarlo in quello che più ci piace, nei limiti delle possibilità offerte da Feed43. Possiamo anche visitare la landing page del feed:

Feed43 - Subscribe

Volete iscrivervi al nuovo feed?

In questo caso Opera, oltre a visualizzare la pagina, ci chiede se vogliamo iscriverci al feed tramite l’aggregatore integrato, M2.

Potete trovare il feed che ho generato tramite Feed43 di cui vi ho mostrato i passi a questo indirizzo.

Offrire aggiornamenti via e-mail di una qualunque pagina web

Grazie a FeedBurner è possibile creare un “nuovo” feed che ne incapsuli uno preesistente (ad esempio quello da noi appena creato) e dotato di capacità aggiuntive: nel nostro caso, la possibilità di iscriversi agli aggiornamenti del feed via e-mail, per venire incontro alle necessità dei più “retrogradi” e, perchè no, per avere a disposizione le nostre notizie anche quando non abbiamo sottomano un aggregatore. Se ci iscriviamo a FeedBurner e registriamo l’indirizzo del feed prelevato al punto precedente (ometto le fotografie perchè si tratta di passaggi molto immediati, anche per chi non conosce l’inglese), potremo attivare la funzionalità facendo click su Publicize > Email Subscriptions dall’interfaccia di amministrazione del feed:

FeedBurner - Email Subscriptions

Publicize > Email Subscriptions

Tralasciando le numerose possibilità di personalizzazione consentite da FeedBurner, vi faccio vedere come diventa la landing page del feed creato da FeedBurner con l’opzione per gli aggiornamenti via e-mail attivata:

FeedBurner - Iscriviti via e-mail

Volete iscriveri al nuovo superfeed? :-D

Potete trovare il feed generato da FeedBurner qui. Con questo mi congedo, restando disponibile per ogni eventuali chiarimento tramite i commenti. Enjoy  :-)

Leave a Reply