elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Código-javascript]Palabras más utilizadas en un Sitio Web
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Código-javascript]Palabras más utilizadas en un Sitio Web  (Leído 1,677 veces)
0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
[Código-javascript]Palabras más utilizadas en un Sitio Web
« en: 25 Noviembre 2014, 10:00 am »

Hola, muy buen día.

El código javascript que publicaré más abajo se encarga de capturar todas las palabras dentro de algún elemento, clase o id. Nos creará un pequeño formulario "flotante", en el cuál nos pedirá "Longitud", "Veces", "Elemento" (Filtros).


¿ Que es eso de "Filtros"?
Los dos primeros son una especie de filtros, así mostramos resultados más específicos.
  • Longitud: Busca palabras con la longitud que tu deseas (>=)
  • Veces: Cantidad de veces que aparece en la web
  • Elemento: Acá ingresamos en que elemento de la web deseamos buscar Las palabras más utilizadas. El script al usar jQuery, nos permite insertar en este campo ".clases", "#ids" o simplemente elementos como <body>
Una vez rellenes los campos, el programa te dará una salida con una tabla como esta:

Ejemplo basado en el portal de noticias http://actualidad.rt.com

Sin más, el código:
Código
  1. var script = document.createElement('script');
  2. script.src = 'http://code.jquery.com/jquery-latest.js';
  3. document.getElementsByTagName('head')[0].appendChild(script);
  4.  
  5. var times_form;
  6. var element_form;
  7. var length_form;
  8. var l_temp;
  9. var dict = {};
  10. var new_dict = {};
  11. var splited = "";
  12. var counter;
  13. var get_data = function (text, length) {
  14.  
  15. splited = text.split(" ");
  16.  
  17.  for ( var a in splited ) {
  18.  
  19. if( dict[splited[a]] ) {
  20.  
  21.      splited[a] = splited[a].toLowerCase();
  22. dict[splited[a]] = dict[splited[a]] + 1;
  23.  
  24. } else {
  25.  
  26.      if ( splited[a].length >= length ) {
  27.  
  28.      splited[a] = splited[a].toLowerCase();
  29.        dict[splited[a]] = 1;
  30.  
  31.   }
  32.  
  33.    }
  34.  
  35. }
  36.  
  37. };
  38.  
  39. var extract = function (element, length, times) {
  40.  
  41.  new_dict = {};
  42.  dict = {};
  43.  
  44.  $(element).each( function () {
  45.  
  46.  get_data($(this).text(), length);
  47.  
  48. });
  49.  
  50.  for ( var c in dict ) {
  51.  
  52.    if ( dict[c] >= times ) {
  53.  
  54.      new_dict[c] = dict[c];
  55.  
  56.    }
  57.  
  58.  }  
  59.  
  60.  var output = "<table border='1'>"+
  61.      "<thead>"+
  62.      "<th>Palabra</th>"+
  63.      "<th>Longitud</th>"+
  64.      "<th>Apariciones</th>"+
  65.      "</thead>"+
  66.      "<tbody>";
  67.  counter = 0;
  68.  for( var l in new_dict ) {
  69.  
  70.    counter++;
  71.    l_temp = l.replace("<", "&lt;");
  72.    l_temp = l_temp.replace(">", "&gt;");
  73.    output = output + "<tr>"+
  74.      "<td>" + l_temp + "</td><td>" + l.length + "</td><td>" + new_dict[l] + "</td>"+
  75.      "</tr>";
  76.  
  77.  }
  78.  output = output + "</tbody></table>";
  79.  
  80.  show_results(output);
  81.  return new_dict;
  82.  
  83. };
  84.  
  85. var find = function (word) {
  86.  
  87.  if ( new_dict[word] ) {
  88.  
  89.   show_results(String(new_dict[word]));
  90.  
  91.  } else {
  92.  
  93.   show_results("Word Not found");
  94.  
  95.  }
  96.  
  97. };
  98.  
  99. var search = function () {
  100.  
  101.  length_form = $("input[name=length_craw]").val();
  102.  times_form = $("input[name=times_craw]").val();
  103. element_form = $("input[name=element_craw]").val();
  104.  if( length_form.length > 0 && times_form.length > 0 && element_form.length > 0 ) {
  105.  
  106.    extract(element_form, length_form, times_form);
  107.  
  108.  }
  109.  
  110. };
  111.  
  112. var show_form = function () {
  113.  
  114.  $("<div class='show_words' style='border-radius:5px;box-shadow:0px 0px 10px #000;overflow:scroll;font-family:Trebuchet MS;width:auto;height:6cm;background-color:#fff;border:1px solid;position:fixed;top:12%;left:2%;padding:5px;z-index:30;'>"+
  115.    "<center><h2>Palabras más utilizadas</h2></center><input style='padding: 2px;border: 1px solid;border-radius: 4px;margin: 4px;' name='length_craw' placeholder='Longitud'>&nbsp;<input style='padding: 2px;border: 1px solid;border-radius: 4px;margin: 4px;' name='times_craw' placeholder='Veces'><br/>"+
  116.    "<input style='padding: 2px;border: 1px solid;border-radius: 4px;margin: 4px;' name='element_craw' placeholder='Elemento'>&nbsp;<button onclick='search()' style='padding: 2px;border: 1px solid;border-radius: 4px;margin: 4px;'>¡Buscar!</button>&nbsp;<button onclick='$(\".show_words\").fadeOut();' style='padding: 2px;border: 1px solid;border-radius: 4px;margin: 4px;'>Cerrar</button>"+
  117.    "<div class='words_content'></div></div>").appendTo("body");
  118.  
  119. };
  120.  
  121. var show_results = function (content) {
  122.  
  123.  $(".words_content").html("Total:" + counter + "<br/>" + content);
  124.  
  125. };
  126.  
  127. show_form();

FUENTE ORIGINAL : http://codigo.ga/javascript/javascriptpalabras-mas-utilizadas-en-sitio-web/


Sin más que agregar... gracias por leer :-)

Saludos, Javier.


« Última modificación: 26 Noviembre 2014, 02:04 am por 0x5d » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines