[BOT] Spider indexador

Iniciado por linkgl, Agosto 17, 2011, 12:42:08 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

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
<?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://")===0 || strpos($url,"www.")===0 || 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:

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
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Llaman traidor a la persona que evito que caiga el foro, gente bruta!



No tienes permitido ver los links. Registrarse o Entrar a mi 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  ;)


Trata de usar Expresiones regulares, a mi modo de ver es mas limpio y mucho mas simple modificarlo posteriormente ;).

Muy buen trabajo!

Sa1uDoS

Excelente aporte, gracias por compartir...

Saludos!!  ;D

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta