Home Tips Varios Joomla Recuperando datos de otro sitio web con YQL

Recuperando datos de otro sitio web con YQL

icoDetalles Tip - Nivel : Avanzado, Versión Joomla >= 1.5.x, Formato : texto y video.
YQL (yahoo query language) es un lenguaje con sintaxis similar a SQL que utiliza la plataforma de yahoo para consultar y filtrar datos de diferentes servicios Web, en este artículo veremos específicamente el uso de YQL para la recuperación de datos desde un sitio web remoto.

 

En este primer video se muestra cómo realizar la ubicación de los datos origen, trabajar con la consola YQL y realizar la consulta utilizando xpath

Suscríbete a monitojoomla en youtube para que puedas ver todos los videos publicados

 

En este segundo video se muestra cómo trabajar con los datos obtenidos haciendo uso de javascript y colocarlos finalmente en nuestro sitio web

Suscríbete a monitojoomla en youtube para que puedas ver todos los videos publicados

 

Esquema General

Esquema general

 

Resultado Final

Resultado final

 

1 - Realizando la consulta YQL

En la consola YQL, realizamos la consulta al sitio web de ayudajoomla

select * from html where url="http://www.ayudajoomla.com" and xpath="//ul[@class='mostread']"

Algunas consideraciones para el xpath: // = raiz, ul = elemento, @=significa un atributo, class o id = nombre del atributo, mostread = valor del atributo

Al realizar esta consulta, nos devolverá una cadena json

cbfunc({
 "query": {
 "count": "1",
 "created": "2010-09-03T14:45:18Z",
 "lang": "en-US",
 "results": { ......

y la url devuelta, la cual utilizaremos posteriormente

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fwww.ayudajoomla.com%22%20and%20xpath%3D%22%2F%2Ful%5B%40class%3D'mostread'%5D%22&format=json&callback=cbfunc

 

2- Utilizando los datos recuperados

Hacemos referencia a los datos devueltos por Yahoo a través de un script en el template de nuestro sitio web, de preferencia colocado en la parte final del código.

<script src="http://query.yahooapis.com/v1/public/yql?q=selec........"></script>

Este script utiliza una función llamada cbfunc, para la devolución de los datos, por lo que tenemos que codificar esta función utilizando javascript, para este ejemplo nos ayudaremos del framework mootools de javascript.


function cbfunc(data){
 links = data.query.results.ul.li;
 url="http://www.ayudajoomla.com";
 str="";
 
 $each(links,function(item){
 str=str + "<li><a href='"+ url+ item.a.href+"' target='_blank'>"+item.a.content+"</a></li>";
 });
 $('linksayudajoomla').innerHTML=str;
}

 

Conclusión

El uso de YQL nos brinda la facilidad de hacer consultas de manera sencilla a sitios o servicios web remotos y trabajar con los datos obtenidos en nuestro sitio Web a través de javascript o PHP.

 

 

 

Comparte este postDel.icio.us! Google! Live! Facebook! Twitter! Joomla Free PHP
Comentarios (3)
  • David
    avatar
    Enhorabuena. Muy buen tutorial.
  • roberto
    avatar
    buen tutorial, pero no hay alguna otraforma e recuperar detos.
Escribir comentario
Gravatar enabled