"Ricerca aggregata delle News ": spiegazione - Guida a Yahoo Pipes Scrivi un commento!

Spiegazione della Yahoo Pipe “Ricerca aggregata delle News”

Yahoo Pipes Ieri ti ho presentato la Yahoo pipeRicerca aggregata delle News“, da un punto di vista prettamente pratico. Con questo post di approfondimento proverò a spiegartela; se ti interessa modificarla per adattarla meglio alle tue esigenze, o capire come costruire una tua pipe personale, continua a leggere! ;)

Introduzione: cos’è una Yahoo Pipe?

Pipes
Effettivamente le Yahoo Pipe ricordano molto delle tubature!
Pipes © Poagao

Yahoo Pipes è un aggregatore “avanzato” di Feed RSS; anzi, meglio dire “rielaboratore”. Oltre alle funzionalità di aggregazione tipiche, ad esempio, di Google Reader, è infatti capace di eseguire funzioni molto più avanzate sui vari feed (in questo articolo vedremo le funzioni più semplici). Ad esempio, puoi cercare tutti gli appartamenti vicini a qualcosa (ad esempio, un parco)… ;)

Essendo uno strumento avanzato, ha un suo linguaggio di programmazione: si programma per via grafica, inserendo vari blocchi (funzioni) in uno schema, e collegando gli ingressi (input) dell’uno con le uscite (output) dell’altro. La maggior parte dei blocchi prende in ingresso e restituisce in uscita dei feed RSS, ma altri blocchi lavorano, ad esempio, su stringhe di testo.

Ogni blocco, infine, ha una comodissima funzione di debug: cliccando sopra di esso, nella finestra in basso, vedremo un’anteprima dell’uscita del blocco, senza dover salvare ed eseguire ogni volta la pipe. :)

Prima di iniziare: apri un account su Yahoo, e clona la Pipe

Per prima cosa devi aprire un account su Yahoo. Se sei un utente di MyBlogLog, o di Flickr, comunque, sei già registrato, e sei pronto a clonare la pipe! ;)

Ora devi clonare la pipe. Cosa significa? Yahoo ti riserva un tuo spazio personale (”My Pipes“) dove potrai memorizzare tutte le tue Pipe. Puoi creare una pipe ex-novo, oppure crearne una sulla base di un’altra già esistente. Premendo il tasto “clone” che trovi su ogni Yahoo Pipe, ne verrà salvata una copia sul tuo account, che potrai modificare liberamente.

Scegli pertanto una tra queste pipe (dopo aver fatto il login)

premi “Clone“, vai nelle tue pipe, seleziona la copia appena creata e scegli “Edit Source“, per iniziare a modificarla! ;)

Spiegazione di Ricerca Aggregata delle News

Ti descriverò, passo passo, il funzionamento di tutti i blocchi.

1: Text Input (lettura del termine di ricerca)

Il primo blocco ha il compito di leggere le keyword di ricerca immesse dall’utente che esegue la pipe.

Text Input - Yahoo Pipes

Un blocco, di solito, può avere 3 elementi:

  1. un ingresso (un pallino grigio in alto);
  2. dei parametri (le caselle di testo dentro il box; se hanno un pallino grigio a fianco, significa che il loro valore può essere preso dall’uscita di un altro blocco);
  3. un’uscita (un pallino grigio in basso).

In questo caso, non c’è ingresso. Questo blocco riporta, in uscita (che è di tipo text), l’input inserito dall’utente. Debug non è fondamentale, ma vi inserirai il termine di esempio con cui vorrai controllare la tua pipe con la funzione di debug che ti ho spiegato prima. ;)

Ora dovrai dare “in pasto” questo termine di ricerca ai vari motori di ricerca per News (come Technorati). Fortunatamente, tutti questi motori restituiscono i risultati sotto forma di Feed RSS, che aggregherai, ordinerai e filtrerai in un’unico feed (il risultato finale della pipe).

2: URL Builder

Al prossimo blocco, che restituirà i risultati di tutti i motori di ricerca, serviranno gli indirizzi dei “feed di ricerca“.

Cos’è un feed di ricerca? Quando cerchi il termine “blog” (ricordi? è il termine usato per il debug), ad esempio, su Google News, esso ti permette di seguire i risultati via feed RSS:

http://news.google.com/news?q=blog&output=rss&oe=utf8&ie=UTF-8&hl=it

Come vedi, il termine ricercato (che ho sottolineato) viene riportato direttamente nell’indirizzo del feed di ricerca (q, output, oe, ie e hl vengono definiti come query parameter - li riconosci dal punto interrogativo). E per generare tale url, serve appunto il blocco “url builder”:

Url Builder - Yahoo Pipes

Il termine di ricerca (”blog”), di tipo testo, arriva in ingresso al query parameter “q” del blocco URL Builder (che accetta appunto un dato di tipo testo). Gli altri query parameter, non dipendono dalla ricerca dell’utente (sono costanti), e gli assegnamo valori direttamente dall’interno del blocco. Quando un elemento di testo di un blocco prende valori dall’uscita di un altro blocco comparirà la stringa “[wired]” (collegato).

Il blocco genererà una stringa di testo (la url) appendendo, uno dopo l’altro, tutti i query parameter alla base dell’url.

Se clicchi sopra il blocco url builder, sotto, nell’area di debug, comparirà l’indirizzo del feed di ricerca voluto, segno che la progettazione del blocco è andata a buon fine.

Dovrai costruire un blocco url builder per ogni motore di ricerca di news che vorrai utilizzare come fonte della pipe (i query parameter possono cambiare di volta in volta), e dovrai collegare ogni blocco all’uscita del blocco text input che hai visto all’inizio (puoi infatti collegare l’uscita di ogni blocco ad “infiniti” ingressi di altri blocchi).

Tutte queste N uscite (cioè, gli indirizzi dei vari feed), verranno collegate agli ingressi del prossimo blocco (che è un blocco ad N ingressi).

2-1 Caso particolare di Wikio: String Builder + URL Builder (con Path Element)

Wikio genera un indirizzo del feed di ricerca diverso dal modello visto in precedenza:

http://rss.wikio.it/search/blog.rss

Questa volta, il termine di ricerca (”blog“, sottolineato), non viene utilizzato come query parameter (non ha il punto interrogativo), ma come path element (cioè, con uno slash, “/”). Il “.rss” fa parte dello stesso path element del termine di ricerca: per questo motivo, dovremo preventivamente appenderlo a quest’ultimo con uno String Builder.

String Builder + Url Builder - Wikio su Yahoo Pipes

Lo string builder prende come input (dal modulo text input) il termine di ricerca e lo unisce a “.rss”. L’output, come possiamo vedere dal debug, è “blog.rss”.

L’uscita del modulo viene a questo punto inviata al path element di due URL builder, uno per la ricerca su Wikio internazionale e l’altro per la ricerca italiana (cambia la stringa inserita in Base).

3: Fetch Feed (generazione e aggregazione dei feed)

A questo punto, tutte le url generate dai vari url builder vengono inviate in input al modulo Fetch Feed, che ha N ingressi (uno per ogni URL):

Fetch Feed - Yahoo Pipes

Come vedi dall’immagine, puoi specificare le URL manualmente, ma in questo caso sono di tipo wired, cioè dipendenti dalle uscite dei moduli precedenti.

Questo modulo genera in uscita (nella forma di un feed RSS) l’unione di tutti i feed RSS letti dalle URL in ingresso.

Il più è fatto. Il feed risultante, però, è ancora “sporco”, non ancora pronto per essere restituito in uscita dalla pipe: oltre a non essere ordinato, presenta degli elementi duplicati. I moduli successivi avranno il compito di ripulirlo.

4: Sort (ordinamento per data)

Per prima cosa, ordiniamo il feed:

Sort - Yahoo Pipes

Il modulo Sort prende in ingresso un feed RSS e lo restituisce in uscita, ordinato secondo un parametro. In questo caso, dovrai ordinarlo per data, in ordine crescente.

5: Filter (ricerca solo nei titoli)

Nota: questo modulo non è presente nella prima pipe (Ricerca Aggregata delle News).

Filter - Yahoo Pipes

Il modulo Filter prende in input un feed e lo restituisce in output filtrato, eliminando cioè quegli elementi che non soddisfano una o più condizione.

In questo caso, la condizione è: “Blocca gli elementi il cui titolo non contiene il termine di ricerca” - come vedi, ho collegato il testo della condizione all’uscita del primo modulo (user input). In questo modo ottieni una ricerca solo nei titoli delle news.

6: Unique (rimozione elementi duplicati)

Unique - Yahoo Pipes

Questo modulo prende in input un feed e lo restituisce ripulito da quegli elementi simili, per un dato parametro, ad altri elementi già presenti. In questo caso, il parametro su cui si fa il testo è il titolo.

Purtroppo, per far scattare il filtro due titoli devono essere completamente uguali; possono risultare quindi, nel feed finale, elementi molto simili tra loro… anche se questo elemento ci risparmia un bel po’ di lavoro, durante la consultazione delle news! Speriamo che migliori, in futuro! ;)

7: Truncate

Questo semplice modulo prende in input un feed e lo restituisce accorciato, facendo passare solo i primi N elementi.

8: Pipe Output

Siamo giunti alla fine! Questo semplice modulo, ad 1 solo ingresso e a 0 uscite, rappresenta il termine della pipe: il feed che riceve in input viene restituito (inalterato) all’uscita della pipe, quando la eseguiamo.

È tutto! :D Spero di essere stato chiaro, e di averti aiutato a capire come iniziare a costruire le tue prime Yahoo Pipes! Per dubbi, domande o suggerimenti lascia un commento… considera, però, che neanche io sono un esperto, visto che per sfruttare al massimo le pipe occorre conoscere le espressioni regolari, e io non le ho mai studiate! :oops: :mrgreen:

Articoli simili:

Se questo articolo ti è stato utile, segnalalo sul tuo sito! Puoi inoltre seguire comodamente gli aggiornamenti di Techlog tramite il feed RSS; infine puoi lasciare un commento se ti serve aiuto (o anche solo per un saluto); anche qui non serve registrarsi (sono abilitati anche i commenti anonimi; l'E-Mail serve, eventualmente, per ricevere le notifiche delle nuove risposte). ;-)

Leave a Reply


SMS Gratis