Underc0de - La Casa de los Informáticos

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
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
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