Tutorial: Extrair informações de uma fanpage injetando JavaScript

  • Autor Autor l0g0s
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
l0g0s

l0g0s

Beta
Programador
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Hola amigos,

Aquí voy a explicar una forma sencilla para extraer datos muy básicos de una FanPage de Facebook inyectando código javaScript. Este sistema de inyectar JavaScript es muy útil ya que no necesitas un servidor para trabajar, sólo un AddOn en tu navegador (greasemonkey en nuestro caso).

Esto es sólo un ejemplo últil para comenzar, a partir de estos cimientos espero que podáis agregar vuestros propios códigos que realicen tareas más complejas. Estaré encantado de responder cualquier pregunta, y compartir las mejoras sobre código original que se aporten.

Aunque lo datos que extrae se pueden ver en la propia página, estos al aparecer sin formato son fáciles de copiar para tener nuestras propias estadísticas.

Datos mostrados:
- Nombre de la FanPage
- Fecha actual
- Número de fans (likes)
- Alcance total actual
- Botón de RESET para actualizar los datos y refrescar la página.

1.- Abre Firefox e instala el addon greasemonkey
https://addons.mozilla.org/es/firefox/addon/greasemonkey/
greaseMonkey2.webp

2.- Una vez instalado selecciona el icono del monito que aparece a la derecha de la barra de herramientas y ahí selecciona "Manage User Scripts"
greaseMonkey1.webp

3.- Pulsa "New user script..." y rellena el campo name con "leedatosFP.js" y el campo namespace con "leedatos" y pulsa ACEPTAR así:
greaseMonkey3.webp

4.- Ahora copia este código que te dejo aquí abajo y lo pegas en el editor de javascript.
Código cedido con licencia CreativeCommons
Inserir CODE, HTML ou PHP:
// ==UserScript==
// @name        leedatosFP.js
// [MENTION=52291]CREATOR[/MENTION]     AHE, l0g0s
// [MENTION=39868]grant[/MENTION]       none
// ==/UserScript==

//
// IMPORTANTE: NO se puede usar jQuery porque FACEBOOK lo bloquea aunque cargues las librerias por tu cuenta!
//

//Variables GLOBALES
var fecha;
var pageTitle;
var meGusta;
var cellFecha;
var cellMeGusta;
var cellAlcance;

// 12/09/2014 - AHE - Ejecución al cargar la página
window.onload = function(){
  setTimeout(function() {
    leeDatos();
    creaElementos();
  }, 2500);
};

// 12/09/2014 - AHE - Lectura de datos de una FP de Facebook
function leeDatos(){
  var hoy = new Date();
  var mes = (hoy.getMonth()+1);
  var dia = hoy.getDate();
  var minutos = hoy.getMinutes();
  if (mes<10) mes = "0" + mes;
  if (dia<10) dia = "0" + dia;
  if (minutos<10) minutos = "0" + minutos;
  fecha = dia + '/' + mes + '/' + hoy.getFullYear() + ' ' + hoy.getHours() + ':' + minutos;
  pageTitle = document.getElementById('pageTitle').innerHTML;
  meGusta = document.getElementById('PagesLikesCountDOMID').innerHTML;
  var l1 = meGusta.indexOf('>');
  var l2 = meGusta.indexOf('<',l1);
  meGusta = meGusta.substring(l1+1,l2);
  meGusta = meGusta.replace('&nbsp;','');
  meGusta = meGusta.replace('&nbsp;','');
  meGusta = meGusta.replace('&nbsp;','');
  
  alcance = document.getElementById('pagesManagerSpringboard').innerHTML;
  l1 = alcance.indexOf('Alcance de la publicaci');
  l1 = alcance.indexOf('">',l1+1);
  l1 = alcance.indexOf('">',l1+1);
  l2 = alcance.indexOf('</span>',l1);
  alcance = alcance.substring(l1+2,l2);
  alcance = alcance.replace('&nbsp;','');
  alcance = alcance.replace('&nbsp;','');
  alcance = alcance.replace('&nbsp;','');
}

// 12/09/2014 - AHE - Resetea Datos
function resetearDatos(){
    leeDatos();
    cellFecha.innerHTML = fecha;
    cellMeGusta.innerHTML = meGusta;
    cellAlcance.innerHTML = alcance;
}

// 12/09/2014 - AHE - Creación del botón Reset de datos
function creaBoton(){
  var newbuttom = document.createElement('BUTTON');
  var t=document.createTextNode("RESET");
  newbuttom.appendChild(t);
  newbuttom.id = "resetDatos";
  newbuttom.onclick = function(){
    resetearDatos();
  };
  return newbuttom;
}

// 12/09/2014 - AHE - Creación de tabla para mostrar datos en pantalla
function creaTabla(){
  var row;
  var cell;
  var newtabla = document.createElement('table');
  newtabla.setAttribute("border", "1");
  newtabla.setAttribute("cellpadding", "2");
  newtabla.setAttribute("cellspacing", "0");

  //Fecha
  row = document.createElement("tr");
  cellFecha = document.createElement("td");
  cellFecha.setAttribute("colspan", "2");
  cellFecha.innerHTML = fecha;
  row.appendChild(cellFecha);
  newtabla.appendChild(row);
  
  //Nueva fila
  row = document.createElement("tr");

  //Título MeGusta
  cell = document.createElement("td");
  cell.innerHTML = "MeGusta";
  row.appendChild(cell);

  //Título Alcance
  cell = document.createElement("td");
  cell.innerHTML = "Alcance";
  row.appendChild(cell);
  
  newtabla.appendChild(row);
  
  //Nueva fila
  row = document.createElement("tr");

  //Dato meGusta
  cellMeGusta = document.createElement("td");
  cellMeGusta.innerHTML = meGusta;
  row.appendChild(cellMeGusta);

  //Dato alcance
  cellAlcance = document.createElement("td");
  cellAlcance.innerHTML = alcance;
  row.appendChild(cellAlcance);
  
  newtabla.appendChild(row);
  
  return newtabla;
  
}

// 12/09/2014 - AHE - Crea todos los elementos y los coloca en la página
function creaElementos(){
  var newscript = document.createElement('span');
  var newbuttom = creaBoton();
  var newtabla = creaTabla();
  var recortaTitulo = pageTitle.substring(0,35);
  newscript.id = "pruebaAl";
  newscript.innerHTML = "<br/><br/><br/>" + recortaTitulo; //blueBarDOMInspector //pagelet_bluebar
  document.getElementById('blueBarDOMInspector').appendChild(newscript);
  document.getElementById('blueBarDOMInspector').appendChild(newtabla);
  document.getElementById('blueBarDOMInspector').appendChild(newbuttom);
  setTimeout(resetearDatos(), 4000);
};

5.- Pulsa GUARDAR y cierra la ventana de edición del código.

6.- Verás que aparece tu código en el addon de greasemonkey
  1. Pulsa "Opciones" para editarlo
  2. Pulsa "Añadir" en "Páginas includas" y pega la/las FanPage/s de Facebook a las que quieres aplicar el código.
  3. Pulsa "Edit this user script" para modificar el código a tu gusto.
  4. Pulsa ACEPTAR al finalizar
Tal como se ve aquí:
greaseMonkey5.webp

Ejemplo de como queda el javaScript inyectado en una FanPage de Facebook:
greaseMonkey6.webp
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
Muy interesante el tutorial, vamos a probarlo, se agradece amigo
 
Gracias por el tutorial, se agradece.
 
gracias bro
 
Gracias 😛7:
 
Voltar
Topo