Ranking Delicious con PHP

Delicious en un servicio de Bookmarks Online gratuito el cual es muy popular entre los usuarios. Una medida de la popularidad de web es la cantidad de enlaces que han sido guardados en Delicious. Veamos una forma de extraer esta información con PHP.

delicious

API de Delicious
Delicious brinda una completa API para extraer información de acuerdo a nuestras necesidades, esta información se devuelve en formato XML o JSON la cual esta muy bien documentada en Delicious data feeds for news readers and third-party applications.

Para obtener los datos de una URL, podemos acceder al siguiente URL, donde el URL se ha codificado en formato MD5:

http://feeds.delicious.com/v2/json/urlinfo/{url md5}

Obteniendo la información
Entonces primero creamos el URL de la consulta y luego leemos los datos haciendo uso de la función file_get_contents. Como esta información es devuelta en formato JSON utilizaremos la librería JSON.php de la cual comentamos en JSON con PHP.

require_once("JSON.php");
$url = md5("http://blog.unijimpe.net/");
$path = "http://feeds.delicious.com/v2/json/urlinfo/";
$data = file_get_contents($path.$url);

$json = new Services_JSON();
$obj = $json->decode($data);

print_r($obj);

Con lo cual obtenemos los datos del web consultado como un objeto, en este script hemos impreso los resultados utilizando la función print_r, el cual devuelve lo siguiente:

Array (
    [0] => stdClass Object (
            [hash] => 4862ec49f2b5db5467035c90e83c156b
            [title] => unijimpe
            [url] => http://blog.unijimpe.net/
            [total_posts] => 185
            [top_tags] => stdClass Object (
                    [php] => 87
                    [css] => 56
                    [blog] => 56
                    [flash] => 41
                    [wordpress] => 40
                    [javascript] => 39
                    [blogs] => 36
                    [actionscript] => 36
                    [web] => 30
                    [tutorial] => 27
                )
        )
)

Finalizando
Hemos logrado extraer la información que necesitamos, el siguiente paso es crear una función que se encargue de este proceso la cual llamaremos getDelicious el cual recibe como parámetro del URL que deseamos consultar.

require_once("JSON.php");

function getDelicious($url) {
	$path = "http://feeds.delicious.com/v2/json/urlinfo/";
	$data = file_get_contents($path.md5($url));
	$json = new Services_JSON();
	$obj = $json->decode($data);
	return $obj[0];
}

$item = getDelicious($_GET['url']);

echo "Titulo: " . $item->title. "
"; echo "URL: " . $item->url. "
"; echo "Total: " . $item->total_posts. "
";

Este script recibe el URL a consultar como un parámetro GET, pueden ver el ejemplo funcionando en: delicious. Como pueden ver este blog actualmente tiene 185 enlaces en Delicious, pueden cambiar el URL de la consulta para consultar otro dominio.

[download id=»16″ autop=»false»]

Comentarios Total 3 comentarios

Bitacoras.com
Publicado: 16/07/2009 12:06 am

Información Bitacoras.com…

Valora en Bitacoras.com: Delicious en un servicio de Bookmarks Online gratuito el cual es muy popular entre los usuarios. Una medida de la popularidad de web es la cantidad de enlaces que han sido guardados en Delicious. Veamos una forma de extraer e…..

Angel
Publicado: 16/07/2009 3:33 am

Se me acaba de ocurrir una idea para el blog!! ¿Que os parece hacer un módulo para añadir al WordPress donde todos los que nos conectamos a este blog muestre los maracadores que vamos metiendo en Delicious o Mister Wong? Sería genial!! Voy a investigar …

blanka
Publicado: 22/07/2009 9:21 am

hola,recurro a tu blog usualmente para dudas de wordpress. ahora estoy trabajando con indexhibit, y veo que no tienes nada. he de ver algo proximamente?

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)