Underc0de

Programación Web => Back-end => Mensaje iniciado por: linkgl en Agosto 17, 2011, 12:42:08 PM

Título: [BOT] Spider indexador
Publicado por: linkgl en Agosto 17, 2011, 12:42:08 PM
Este es un bot spider indexador al cual llamo lindexer (estúpido lo sé...) pero bueno el proyecto consiste en que le das una url inicial al bot y este se mete a los enlaces que encuentre en el sitioweb y los va indexando (o guardando en un txt) y despues se mete a los enlaces de los enlaces y sigue indexando hasta que ya no encuentre más entonces le das una url distinta y sigue indexando, (Aún lo estoy mejorando para que busque mas y mas pero ya funciona bastante bien:

Código (php) [Seleccionar]
<?php
set_time_limit
(0);
error_reporting(0);
/*
@Coder: Linkgl
  @Fecha: 14/08/2011
*/
function simpleono($cadena)
{
  
$p1=strpos($cadena,"\"");
  
$p2=strpos($cadena,"'");
  if(
$p1!==false && $p2!==false)
  {
    if(
$p1<$p2)
      return 
$p1;
    else
      return 
$p2;
  }
  else
    return 
0;
}
 
function 
searchanddestroy($cadena,$buscar,$separador)
{
  
$arr=explode($cadena,$separador);
  for(
$i=0;$i<count($arr);$i++)
  {
    if(
$arr[$i]==$buscar)
      return 
true;
  }
  return 
false;
}
function 
generador($direccion)
{  
$p_inicio=$direccion;
$enlaces=file_get_contents("enlaces.txt");
$c_inicio=file_get_contents($p_inicio);
$c1=strpos($c_inicio,"<a href=");
//BUSCAMOS UN ENLACE
while($c1!==false)
{
  
$curret_pos=$c1;
  
//INTENTAMOS EXTRAER EL ENLACE
  
$url=substr($c_inicio,$c1+9);
  
$c2=simpleono($url);
  
$enlaces=file_get_contents("enlaces.txt");
  if(
$c2!==false)
  {
    
//echo $url."before";
    
$url=substr($url,0,$c2);
    if(
strpos($url,"http://")===|| strpos($url,"www.")===|| strpos($url,"https://")===0)
    {
      if(
$url!=$p_inicio)
      {
        if(
strpos($enlaces,$url)===false)
        {
          
$fp=fopen("enlaces.txt","a");
          
fwrite($fp,$url."\n");
          
fclose($fp);
          
flush();sleep(1);flush();
          echo 
$url."<br>"
          
generador($url);
        }
      }
    }
    else
    {
      
$newurl=$p_inicio.$url//lolz.com/#
      
if($url!="")
      {   
        if(
searchanddestroy($enlaces,$newurl,"\n")===false && $url!="#")
        {
          
$fp=fopen("enlaces.txt","a");
          
fwrite($fp,$newurl."\n");
          
fclose($fp); 
          
flush();sleep(1);flush();
          echo 
$newurl."<br>";
          
generador($newurl);
        } 
      }
    }
  }
  else
  {
    echo 
"Cierre de etiqueta no encontrado<br>";
  }
  
$c1=strpos($c_inicio,"<a href=",$c1+1);
}
}
if(!isset(
$_POST['sitioweb']) || empty($_POST['sitioweb']))
{
?>

<form action="#" method="post">
<input type="text" name="sitioweb">
<input type="submit" value="indexar!">
</form>
<?php
}
else
{
echo 
"Iniciando<br>";
generador($_POST['sitioweb']);
echo 
"No hay más enlaces<br>";
}
?>



Imagen como va indexando:
(http://img822.imageshack.us/img822/2397/dibujoeyk.png)
Título: Re:[BOT] Spider indexador
Publicado por: Snifer en Agosto 22, 2011, 09:40:23 PM
hey bro que buena tú araña creo que le daré un buen uso.. je je ahora a copiar a la pc uno a uno
Título: Re:[BOT] Spider indexador
Publicado por: linkgl en Agosto 24, 2011, 12:03:34 AM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
hey bro que buena tú araña creo que le daré un buen uso.. je je ahora a copiar a la pc uno a uno

Gracias :P ando mejorando algunos detalles y publico la mas actualizada  ;)
Título: Re:[BOT] Spider indexador
Publicado por: Acidkode en Mayo 13, 2013, 05:05:35 PM
genial  :D
Título: Re:[BOT] Spider indexador
Publicado por: mr.blood en Mayo 13, 2013, 07:26:12 PM
Trata de usar Expresiones regulares, a mi modo de ver es mas limpio y mucho mas simple modificarlo posteriormente ;).

Muy buen trabajo!

Sa1uDoS
Título: Re:[BOT] Spider indexador
Publicado por: StuXn3t en Mayo 14, 2013, 07:35:54 AM
Excelente aporte, gracias por compartir...

Saludos!!  ;D