Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/05/2014, 07:43
Avatar de oscard41
oscard41
 
Fecha de Ingreso: mayo-2012
Ubicación: Caracas
Mensajes: 288
Antigüedad: 12 años
Puntos: 8
Respuesta: robots y spiders

Gracias por sus respuestas.

Cita:
Iniciado por SathyaSanles Ver Mensaje
Yo he creado una completa clase php que uso para eso justamente, y me baso en rangos de ip obtenidas manualmente y mediante robots de diferentes fuentes, además reviso el user agent para detectar si es un robot mediante la firma...
.

para validar por user agent cre que debo tener una lista de los robot para luego comparar, no me veo actualizando periodicamente una lista con informacion de los robot... consegui un ejemplo en la web donde se valida por user agent

Código PHP:
Ver original
  1. public function esRobot($agente = '') {
  2.         $archivoRobots = "http://www.robotstxt.org/db/all.txt";
  3.         $delimitador1 = "robot-name:";
  4.         $delimitador2 = ":";
  5.    
  6.         if (trim($agente)=="") $agente=trim($_SERVER['HTTP_USER_AGENT']);
  7.          
  8.         //Obtener el contenido del archivo como un array en donde cada item es una linea del archivo.
  9.         $str_archivo = @file($archivoRobots);
  10.         $total_lineas = count($str_archivo);
  11.    
  12.         $i = 0;
  13.         $r = 0;
  14.         $lista_robots = array();
  15.          
  16.         while ($i<$total_lineas)    {
  17.           $linea = chop($str_archivo[$i]);
  18.                 if(   (strpos($linea, $delimitador1) !== false) ) {
  19.                     $items= explode($delimitador2,$linea);
  20.                     $lista_robots[$r] = trim($items[1]);
  21.                     $r++;
  22.                 }
  23.           $i++;
  24.         }
  25.      
  26.             //Determina si la cadena que llega es un robot
  27.             foreach($lista_robots as $robot)    {
  28.                 if(strpos($agente, trim($robot) )  !== false)
  29.                 return true;
  30.             }
  31.             return false;
  32.  
  33.     }

como la lista se esta alimentando de "http://www.robotstxt.org/db/all.tx" tarda considerablemente en cargar...
si tienen alguna otra idea mas optima se los agradecería de ante mano.

Última edición por oscard41; 09/05/2014 a las 08:23