Monday, July 14, 2014

Getting Started with PhantomJS - Review del libro

Hace un par de días comencé a leer Getting Started with PhantomJS de Packt Publishing. Ya había oído acerca de PhantomJS en el pasado pero nunca lo había utilizado realmente...así que estaba muy emocionado por leer este libro...


Al igual que todos los libros Getting Started, este es un poco corto...con 140 páginas...pero dejenme que les diga...eso es más que suficiente para mantener tu atención y convertirte en un fanático de PhatomJS -;)

Este libro comienza con una pequeña introducción y luego salta directamente al código...lo cual es algo que yo siempre aprecio -:P

El primer ejemplo importante está basado en Pinterest pero yo no use/no me gusta Pinterest...así que cambié el ejemplo un poco para poder Twitter -;)

Aquí está el código fuente en el que caso de que estén interesados...

var system = require('system');
var userid = system.args[1];
var page = require('webpage').create();

var profileUrl = "http://www.twitter.com/" + userid;
page.open(profileUrl, function(status) {
 if ( status === "success" ) {
  var twitter = page.evaluate(function (uid) {
  var username = document.querySelector('[href="/' + uid + '"]').innerText.trim();
  var numTweets = document.querySelector('[data-nav="tweets"]');
  numTweets = numTweets.attributes[1].value;
  var numFollowing = document.querySelector('[href="/' + uid + '/following"]');
  numFollowing = numFollowing.querySelector('[class="ProfileNav-value"]').innerText;  
  var numFollowers = document.querySelector('[href="/' + uid + '/followers"]');
  numFollowers = numFollowers.querySelector('[class="ProfileNav-value"]').innerText;    
  return {
   name: username,
   tweets: numTweets,
   following: numFollowing,
   followers: numFollowers
         };
}, userid);

console.log(twitter.name + ' (' + userid + ')' + ' has wrote ' + twitter.tweets + ' and has ' +
      twitter.followers + ' followers and is following ' +
      twitter.following + ' accounts ');
}

phantom.exit(0);
});


Y aquí está el resultado...


Interesánte, no? Para ser un simple primer ejemplo...Yo pienso que es impresionante -;)

El libro también viene con ejemplos de como tomar instantaneas de páginas web, performance de carga de páginas web, modificación del DOM, trabajar con archivos y más...

Inclusive incluye una pequeña introducción a CasperJS, la compañía perfecta para PhantomJS.

Debo decir...simplemente vayan y compren este libro...Me encanta! y voy a leer nuevamente solo para poder descubrir y aprender más....PhantomJS es asombroso!

Saludos,

Blag.
Development Culture.

No comments: