Indice
- Creare un feed di una qualunque pagina web
- 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:
- Apro il browser.
- Visito il sito del mio motore di ricerca preferito.
- Inserisco delle parole chiave.
- 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.
<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?
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à.
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:
- Data
- Titolo (Autore)
- Corpo della notizia
- 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.
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:
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:
Step 3 - Define output format
I valori da inserire in RSS feed properties sono a totale discrezione dell’utente, e serviranno in due occasioni:
- 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.
- 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:
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:
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:
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:

Volete iscriveri al nuovo superfeed?
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