Foros del Web » Programando para Internet » PHP »

AYUDA Bot spider de emails

Estas en el tema de AYUDA Bot spider de emails en el foro de PHP en Foros del Web. Hola , acabo de armar un bot de e-mails pero no es muy eficas al parecer solo me extrae mails de ciertas direcciones ejemp aqui ...
  #1 (permalink)  
Antiguo 07/03/2008, 04:49
Avatar de hawaiian050  
Fecha de Ingreso: junio-2007
Mensajes: 285
Antigüedad: 16 años, 10 meses
Puntos: 2
AYUDA Bot spider de emails

Hola , acabo de armar un bot de e-mails pero no es muy eficas al parecer solo me extrae mails de ciertas direcciones ejemp aqui : www.nodo50.org/cbc/lista.htm de esta url estrae, pero cuando quiero extraer de un foro por ejemp no lo hace ¿ alguien me podria decir por que y como lo podria areglar ?

Código PHP:

<?php

$url 
"http://www.vbulletin.com/forum/showthread.php?p=".$_GET[id]."";

$limite 99999;
if(
$_GET[id] != $limite){

  
// fetch data from specified url
  
$text file_get_contents($url);
}
// parse emails
if (!empty($text)) {
  
$res preg_match_all(
    
"/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i",
    
$text,
    
$matches
  
);

  if (
$res) {
    foreach(
array_unique($matches[0]) as $email) {
      echo 
$email "<br />";
    }
  }
  else {
    echo 
"No emails found.";
  }
}

?>
ahora estoy intentando que inserte en una mysql pero se me esta complicando comoloco si alguien me quiere ayudar seria exelente

Saludos y gracias

Última edición por hawaiian050; 07/03/2008 a las 05:03 Razón: insercion
  #2 (permalink)  
Antiguo 07/03/2008, 05:12
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
De acuerdo Re: AYUDA Bot spider de emails

aca tendo un codigo con un formulario donde te deja elejir el separador incluso y esta hecho para que inserte en tu base de datos...

solo tenes que crear el archivo de conexion dentro de la carpeta Conections y llamarlo: ConectionBDExtract.php
y ella variable de conexion la llamas: $ConectionBD

y listo!!!!

Código PHP:
<?php require_once('Connections/ConectionBDExtract.php'); ?><?php 

$TXTAREAini
="<textarea name='textfield' id='textfield' cols='100' rows='10'>";
$TXTAREAfin="</textarea>";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Extractor de mails | online | direcciones de mails | extaer | php | script |</title>
<script>
function mostrarcampo(id){
    document.getElementById(id).style.display="";
}

function ocultarcampo(id){
    document.getElementById(id).style.display="none";
}
</script>
<script language="javascript" type="text/javascript">
function borra(ID){
    var texto = document.getElementById(ID).value;
        if(texto == 'Pegue el texto aqui'){
            document.getElementById(ID).value='';
        }
}
function restaura(ID){
    var texto = document.getElementById(ID).value;
        if(texto == '' || texto == ' '){
            document.getElementById(ID).value='Pegue el texto aqui';
        }
}
</script>
<script type="text/javascript">
function cuenta(id){
    var total = document.getElementById(id).value;
    document.getElementById('total').value=" "+total+" ";
    document.getElementById('extraidos').style.display='';
    document.getElementById('extrayendo').style.display='none';
    //alert(total);
}
</script>
</head>
<body onload="cuenta('tot');">
<div align="center"> <form id="form1" name="form1" method="post" action="">
<p><strong>Texto:</strong></p>
<p>
  <textarea id="tx" onclick="borra('tx');" onblur="restaura('tx');" name="texto" cols="50" rows="6"><?php if($_POST['texto'] != ""){ echo $_POST['texto']; }else{ ?>Pegue el texto aqui<?php ?></textarea>
</p>
<p><strong>Formato: 
  </strong>
  <input name="tiposep" type="radio" value="linea" checked="checked"  onclick="ocultarcampo('separ');" />
  Enter
  |
  <input name="tiposep" type="radio" value="coma"  onclick="ocultarcampo('separ');" />
  , |
<input name="tiposep" type="radio" value="puntocoma" onclick="ocultarcampo('separ');"  />; | 
<input name="tiposep" type="radio" id="otro" value="otro" onclick="mostrarcampo('separ');" />
Otro<div id="separ" style="display:none;"> &gt; separado por:
<input name="separador" type="text" size="4" maxlength="1" /></div>
</p>
<p>
  <input type="submit" name="Submit" value="Extraer" />
</p>

</form>
<hr />
<div id="extrayendo" style="display:">
  <p><img src="procesando.gif" width="32" height="32" /> Extrayendo...</p>
  <p> Favor espere..</p>
</div>
<div id="extraidos" style="display:none;">
<p><strong>Mails Extraidos:</strong> 
  <label>


  <input name="total" type="text" id="total" size="10" value="" />
  </label> 
  </p>
<?php
$i
="0";
if (isset(
$_REQUEST['texto']) && !empty($_REQUEST['texto'])) {
  
// obtiene el texto del area de texto
  
$text $_REQUEST['texto'];
}

// extraer emails
if (!empty($text)) {
  
$res preg_match_all(
    
"/[a-z0-9]+([_\\.-][a-z0-9]+)*@([a-z0-9]+([\.-][a-z0-9]+)*)+\\.[a-z]{2,}/i",
    
$text,
    
$matches
  
);

  if (
$res) {

  
    
/// inicio separador <br />
    
if(isset($_POST['tiposep']) && ($_POST['tiposep'] == "linea")){
        foreach(
array_unique($matches[0]) as $email) {
              echo 
$email "<br />";
            
/////////// inicio insert  ////////////
            
$mailp=$email;
            
mysql_select_db($database_ConectionBD$ConectionBD);
            
$query_mail "SELECT mail FROM mails WHERE mail='".$mailp."'";
            
$mail mysql_query($query_mail$ConectionBD) or die(mysql_error());
            
$row_mail mysql_fetch_assoc($mail);
            
$totalRows_mail mysql_num_rows($mail);
                if((
$row_mail['mail'] == "") && ($mailp != "")){
                    
$id="";
                    
$mailpi=$mailp;
                      
$insertSQL "INSERT INTO mails (Idmail, mail) VALUES ('".htmlentities($id)."','".htmlentities($mailpi)."')";

                      
mysql_select_db($database_ConectionBD$ConectionBD);
                      
$Result1 mysql_query($insertSQL$ConectionBD) or die(mysql_error());
                }            
            
/////////// inicio insert  ////////////
            
$i++;
        }
    }
    
/// fin separador <br />
    
    
    /// inicio separador ;
    
if(isset($_POST['tiposep']) && ($_POST['tiposep'] == "coma")){
        echo 
$TXTAREAini;
        foreach(
array_unique($matches[0]) as $email) {
              echo 
$email ",";
                        
/////////// inicio insert  ////////////
            
$mailp=$email;
            
mysql_select_db($database_ConectionBD$ConectionBD);
            
$query_mail "SELECT mail FROM mails WHERE mail='".$mailp."'";
            
$mail mysql_query($query_mail$ConectionBD) or die(mysql_error());
            
$row_mail mysql_fetch_assoc($mail);
            
$totalRows_mail mysql_num_rows($mail);
                if((
$row_mail['mail'] == "") && ($mailp != "")){
                    
$id="";
                    
$mailpi=$mailp;
                      
$insertSQL "INSERT INTO mails (Idmail, mail) VALUES ('".htmlentities($id)."','".htmlentities($mailpi)."')";

                      
mysql_select_db($database_ConectionBD$ConectionBD);
                      
$Result1 mysql_query($insertSQL$ConectionBD) or die(mysql_error());
                }            
            
/////////// inicio insert  ////////////
            
$i++;
        }
        echo 
$TXTAREAfin;
    }
    
/// fin separador ;


    /// inicio separador ,
    
if(isset($_POST['tiposep']) && ($_POST['tiposep'] == "puntocoma")){
    echo 
$TXTAREAini;
        foreach(
array_unique($matches[0]) as $email) {
              echo 
$email ";";
            
                        
/////////// inicio insert  ////////////
            
$mailp=$email;
            
mysql_select_db($database_ConectionBD$ConectionBD);
            
$query_mail "SELECT mail FROM mails WHERE mail='".$mailp."'";
            
$mail mysql_query($query_mail$ConectionBD) or die(mysql_error());
            
$row_mail mysql_fetch_assoc($mail);
            
$totalRows_mail mysql_num_rows($mail);
                if((
$row_mail['mail'] == "") && ($mailp != "")){
                    
$id="";
                    
$mailpi=$mailp;
                      
$insertSQL "INSERT INTO mails (Idmail, mail) VALUES ('".htmlentities($id)."','".htmlentities($mailpi)."')";

                      
mysql_select_db($database_ConectionBD$ConectionBD);
                      
$Result1 mysql_query($insertSQL$ConectionBD) or die(mysql_error());
                }            
            
/////////// inicio insert  ////////////
            
            
$i++;
        }
    echo 
$TXTAREAfin;
    }
    
/// fin separador ,
    
    

    // inicio separador elejido por usuario
    
if(isset($_POST['separador']) && ($_POST['separador'] != "") && ($_POST['tiposep'] == "otro")){
        echo 
$TXTAREAini;
    
$separador=$_POST['separador'];
        foreach(
array_unique($matches[0]) as $email) {
          echo 
$email.$separador;
         
                     
/////////// inicio insert  ////////////
            
$mailp=$email;
            
mysql_select_db($database_ConectionBD$ConectionBD);
            
$query_mail "SELECT mail FROM mails WHERE mail='".$mailp."'";
            
$mail mysql_query($query_mail$ConectionBD) or die(mysql_error());
            
$row_mail mysql_fetch_assoc($mail);
            
$totalRows_mail mysql_num_rows($mail);
                if((
$row_mail['mail'] == "") && ($mailp != "")){
                    
$id="";
                    
$mailpi=$mailp;
                      
$insertSQL "INSERT INTO mails (Idmail, mail) VALUES ('".htmlentities($id)."','".htmlentities($mailpi)."')";

                      
mysql_select_db($database_ConectionBD$ConectionBD);
                      
$Result1 mysql_query($insertSQL$ConectionBD) or die(mysql_error());
                }            
            
/////////// inicio insert  ////////////
         
         
$i++;
        }
        echo 
$TXTAREAfin;
    }
    
// fin separador elejido por usuario
    
  
}
  else {
    echo 
"No se hayaron mails";
  }
}
?>
<label>
<input type="hidden" name="tot" id="tot" value="<?php echo $i?>" />
</label></div>
<p>&nbsp;</p>
</div>
</body>
</html>

ah, me olvide de decirte que tambien valida que no haya en la base de datos un mail igual antes de insertarlo asi no tenes mails repetidos...

Última edición por farra; 07/03/2008 a las 05:14 Razón: me falto agregarle un comentario sobre la validacion
  #3 (permalink)  
Antiguo 07/03/2008, 05:42
Avatar de hawaiian050  
Fecha de Ingreso: junio-2007
Mensajes: 285
Antigüedad: 16 años, 10 meses
Puntos: 2
Re: AYUDA Bot spider de emails

no me funciona pongo esta url http://www.nodo50.org/cbc/lista.htm y me dice que no ahy mails ? a vos te funciona bien ? que url pones ??
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 02:33.