Ir para conteúdo
Fórum Script Brasil
  • 0

Get No Site Ler Html Retorna Url's.


Guest Maker_System

Pergunta

Guest Maker_System

Digamos do um get na pagina do fotolog. E o programa ler o fotolog Atraz dos links exemplo o que aqueles programas do orkut fazem para gera as listas de amigos seria com get e um while?

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0
Guest Visitante

Função para entra é essa mas e a função que pega as urls?

<?php 
$ch = curl_init();
// informar URL e outras funções ao CURL
curl_setopt($ch, CURLOPT_URL, "http://www.fotolog.com/mane_testing");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Acessar a URL e retornar a saída
$output = curl_exec($ch);
// liberar
curl_close($ch);
// Imprimir a saída
echo $output;
?>

Editado por ESerra
Link para o comentário
Compartilhar em outros sites

  • 0
Guest --William --
Isso vai pegar toda a página... você vai precisar criar um expressão regular para pegar o links (o que estiver dentro do href é link)...

Eu encontrei algo assim mas não ta ajudando muito...

<?php 

$url="http://qualquercoisa.com";
$keyw="something"

$html = implode('', file($url));
$lol= strstr($html,$keyw)

echo "$lol";

?>

Editado por ESerra
Link para o comentário
Compartilhar em outros sites

  • 0
Guest --William --
Isso não funciona... strstr encontra a primeira ocorrência de uma string... se você quiser catar os links que tem na página vai ter que usa expressão regular mesmo...

<?
$url = "http://www.fotolog.com/mane_testing";
// só isso que vou mudar do que já mostrei no inicio

$conecurl = @fopen("$url","r") or die ('<center>erro na conexão<br><b>informe o administrador erro 15 </b></center>');

while(!feof($conecurl)) {
$lin .= fgets($conecurl,4096);
}
fclose($conecurl);

preg_match_all("#<a href=\"(.*?)\"><\/a>#s", $lin, $matches);
$conteudo2 = $matches[1][0];

echo "$conteudo2<br />";

?>

Massa ele consegui pegar já o conteudo porem apenas um resultado você poderia me dizer como eu faço um array com todos os resultados do preg_match_all

Link para o comentário
Compartilhar em outros sites

  • 0

<?php
$url = "http://www.fotolog.com/mane_testing";
// só isso que vou mudar do que já mostrei no inicio

$conecurl = @fopen("$url","r") or die ('<center>erro na conexão<br><b>informe o administrador erro 15 </b></center>');

while(!feof($conecurl)) {
$lin .= fgets($conecurl,4096);

$lin2 = fgets($conecurl,4096);

if (preg_match_all("#<a href=\"(.*?)\"><\/a>#s", $lin2, $matches)){
print_r($matches);
}

}
fclose($conecurl);

echo "$conteudo2<br />";

?>

Ali ele tá imprimindo o array direto.. qualquer coisa guarda em uma variável...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --William --
<?php
$url = "http://www.fotolog.com/mane_testing";
// só isso que vou mudar do que já mostrei no inicio

$conecurl = @fopen("$url","r") or die ('<center>erro na conexão<br><b>informe o administrador erro 15 </b></center>');

while(!feof($conecurl)) {
$lin .= fgets($conecurl,4096);

$lin2 = fgets($conecurl,4096);

if (preg_match_all("#<a href=\"(.*?)\"><\/a>#s", $lin2, $matches)){
print_r($matches);
}

}
fclose($conecurl);

echo "$conteudo2<br />";

?>
Ali ele tá imprimindo o array direto.. qualquer coisa guarda em uma variável...
Ness modo ai eu até entendi ele pega as urls e tal porem me imprimi todos os arrays... olhaa esse coder ke eu fiz agora com algo na net
<?
$url = "http://www.fotolog.com/surf";
// só isso que vou mudar do que já mostrei no inicio

$conecurl = @fopen("$url","r") or die ('<center>erro na conexão<br><b>informe o administrador erro 15 </b></center>');

while(!feof($conecurl)) {
$lin .= fgets($conecurl,4096);
}
fclose($conecurl);

$nprimetable = strpos($lin,'<div id="rightCol">');

// ele vai me retornar o primeiro table do site

$fechatable = strpos($lin,'</div>');
$quantopula =  $nprimetable + $fechatable;

$conteudo = substr($lin, $nprimetable ,$quantopula);

// pronto agora e só dar um echo no conteudo e pronto acaba de aprender
// a filtrar sites

echo $conteudo;
?>

Ta pegando so a coluna direita certinho...

Até ai beleza será que agora temos como implementar mas uma pesquisa dessa vez dentro do coutendo ke faça algo assim

que procure dentro do conteudo a url

<a href="*.*">*.*</a>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --William --

Ola, a solução pode usar essa logica abaixo apenas modifica.

PS: O Code eu não sei quem é autor.

<?php

//definindo caracteres para delimitar o e-mail
$matriz_email[]="'";
$matriz_email[]='"';
$matriz_email[]="?";
$matriz_email[]="<";
$matriz_email[]=">";
$matriz_email[]=":";
$matriz_email[]="/";

//definindo caracteres para delimitar o href
$matriz_href[]="'";
$matriz_href[]='"';


function retorna_emails($arquivo)
{
    global $matriz_email;

        while (strpos($arquivo,'@')!==false)
        {
            $posicao = strpos($arquivo,'@');
            
            //definindo a posicao inicial
            $boo = true;
            $i = $posicao+2;
            while ($boo)
            {
                if (in_array (substr ($arquivo,$i,1),$matriz_email))
                {
                    $boo = false;
                    $posicao_final = $i;
                }
                else
                {
                    $i++;
                }
            }
            
            //definindo a posicao final            
            $boo = true;
            $i = $posicao-1;
            while ($boo)
            {
                if (in_array (substr ($arquivo,$i,1),$matriz_email))
                {
                    $boo = false;
                    $posicao_inicial = $i;
                }
                else
                {
                    $i--;
                }
            }
            
            $tmp = substr($arquivo,$posicao_inicial+1,($posicao_final-1)-($posicao_inicial));
            $emails[]=$tmp;
            $arquivo = str_replace($tmp,'',$arquivo);
        }
        return $emails; //retorna matriz com e-mails
}

function retorna_links($arquivo,$start)
{
    global $nome_host,$matriz_href;
    $tamanho_start = strlen($start)+1;
        while (strpos($arquivo,$start)>0)
        {
            $posicao = strpos($arquivo,$start);

            $boo = true;
            $i = $posicao+$tamanho_start;
            while ($boo)
            {
                if (in_array(substr($arquivo,$i,1),$matriz_href))
                {
                    $boo = false;
                    $posicao_final = $i;
                }
                else
                {
                    $i++;
                }
            }
            $posicao_inicial = $posicao + $tamanho_start;
            
            if (substr($arquivo,$posicao_inicial,1)=='/')
            {
                $inicio = $posicao_inicial+1;
            }
            else
            {
                $inicio = $posicao_inicial;
            }
            
            $tmp = substr($arquivo,$inicio,($posicao_final)-($inicio));
            $tmp2 = substr($arquivo,$posicao_inicial-$tamanho_start,($posicao_final-1)-($posicao_inicial-$tamanho_start));
            
            if (strpos ($tmp,'http') === false)
            {
                if (strpos ($tmp,'cript') === false)
                {
                    if (strpos ($tmp,'.css') === false)
                    {
                        if (strpos ($tmp,'mailto') === false)
                        {
                            if (strpos ($tmp,'..') === false)
                            {
                                if (strpos ($tmp,'//') === false)
                                {
                                    if (strpos ($tmp,' ') === false)
                                    {
                                        if (strpos ($tmp,'#') === false)
                                        {
                                            if ( ($nome_host[strlen($nome_host)-1]=='/') and ($tmp[strlen($tmp)-1]=='/') )
                                            {
                                                $links[] = substr($nome_host,0,strlen($nome_host)-1).$tmp;
                                            }
                                            else
                                            {
                                                $links[]=$nome_host.$tmp;
                                                //echo "<br>host=[$nome_host]<br>tmp=[$tmp]<br>";                                                    
                                            }
                                        }                                    
                                    }                                
                                }                        
                            }                        
                        }
                    }                    
                }
            }
            else
            {
                $links[]=$tmp;
            }
            $arquivo = str_replace($tmp2,'',$arquivo);
        }
        return $links;
}


function retorna_conteudo($url)
{

    if (!empty($url))
    {
        $nome_arquivo = $url;
        
        $handle = @fopen ($nome_arquivo, "r");
        $conteudo = "";
        
        do
        {
             $dados = @fread($handle, 8192);
             if (strlen($dados) == 0)
             {
                  break;
             }
             $conteudo .= $dados;
        }while(true);
        @fclose ($handle);
        
        $arquivo = $conteudo;
    }

    $arquivo = str_replace('%20','',$arquivo);
    $arquivo = str_replace(' ','',$arquivo);
    
    return $arquivo;
    
    $string = NULL;
    
    $ch = curl_init();

    curl_setopt ($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_HEADER, 0);

    ob_start();

    curl_exec ($ch);
    curl_close ($ch);
    $string = ob_get_contents();

    ob_end_clean();
    
    $string = str_replace('%20','',$string);
    $string = str_replace(' ','',$string);
    
    //echo "URL [$url]<br>Conteúdo: [".htmlentities($string)."]";
    
    return $string;    
    
}



$enviado = $_POST['enviado'];

if ($enviado=='ok')
{
    $arquivo = $_POST['arquivo'];
    $url = $_POST['url'];
    $paginas = $_POST['paginas'];
    $maximo = $_POST['maximo'];
    $salvar_txt = $_POST['salvar_txt'];
    
    if ((!empty($url)) and ($url!='http://'))
    {
        $arquivo = retorna_conteudo($url);
    }
    
    //http://www.passaroazul.com.br/scompeten/index.html
    
        $posicao_barra = strrpos(substr($url,7,strlen($url)-7),'/');
        //echo "<br>posicao barra em $url = [$posicao_barra]<br>";
        if ((int)$posicao_barra==0)
        {
            $nome_host = $url."/";
        }
        else
        {        
            $nome_host = substr($url,0,$posicao_barra+1);
        }
    
    if (!empty($arquivo))
    {
        $emails = array();
        $array_tmp = retorna_emails($arquivo);
        if (is_array($array_tmp))
        {
            foreach ($array_tmp as $chave => $valor)
            {
                array_push($emails,$valor);
            }
        }
        

        
        $links = array();
        $array_tmp = retorna_links($arquivo,'href=');
        if (is_array($array_tmp))
        {
            foreach ($array_tmp as $chave => $valor)
            {
                array_push($links,$valor);
            }
        }
        
        
        $array_tmp = retorna_links($arquivo,'HREF=');
        if (is_array($array_tmp))
        {
            foreach ($array_tmp as $chave => $valor)
            {
                array_push($links,$valor);
            }
        }    
        
        $array_tmp = retorna_links($arquivo,'location=');
        if (is_array($array_tmp))
        {
            foreach ($array_tmp as $chave => $valor)
            {
                array_push($links,$valor);
            }
        }                
        
    }

if (is_array ($links))
{
    $links = array_unique($links);
}
else
{
    $links = array();
}

if (is_array ($emails))
{
    $emails = array_unique($emails);
}
else
{
    $emails = array();
}

/*
        echo "<pre>";
        print_r($links);
        print_r($emails);
        exit();
*/

if (count($links)>0)
{
    $boo = true;
    $contador = 1;
    while ($boo)
    {
        if (! count($links)>0 )
        {
            $boo = false;
        }
    
        if ( !empty($paginas) and ($contador>=$paginas) )
        {
            $boo = false;
        }
        
        if ( !empty($maximo) and (count($emails)>=$maximo) )
        {
            $boo = false;
        }
        
        $url = $links[0];
        array_shift($links);
        $contador++;
        
        
        
        if ((!empty($url)) and ($url!='http://'))
        {
            $historico[]=$url;
            $arquivo = retorna_conteudo($url);
        }
        
        if (substr_count($url,'/')==2)
        {//tipo www.passaroazul.com.br
            $nome_host = $url."/";        
        }
        else
        {
            $posicao_barra = strrpos($url,'/');
            $nome_host = substr($url,0,$posicao_barra+1);                
        }
        
        if (!empty($arquivo))
        {
            $array_tmp = retorna_emails($arquivo);
            if (is_array($array_tmp))
            {
                foreach ($array_tmp as $chave => $valor)
                {
                    if (!in_array($valor,$emails))
                    {
                        array_push($emails,$valor);
                    }
                }
            }
        
            $array_tmp = retorna_links($arquivo,'href=');
            if (is_array ($array_tmp))
            {
                foreach ($array_tmp as $chave => $valor)
                {
                    if ( (!in_array($valor,$links)) and (!in_array($valor,$historico)) )
                    {
                        array_push($links,$valor);
                    }
                }
            }
            

            $array_tmp = retorna_links($arquivo,'HREF=');
            if (is_array ($array_tmp))
            {
                foreach ($array_tmp as $chave => $valor)
                {
                    if ( (!in_array($valor,$links)) and (!in_array($valor,$historico)) )
                    {
                        array_push($links,$valor);
                    }
                }
            }
            
            
            $array_tmp = retorna_links($arquivo,'location=');
            if (is_array ($array_tmp))
            {
                foreach ($array_tmp as $chave => $valor)
                {
                    if ( (!in_array($valor,$links)) and (!in_array($valor,$historico)) )
                    {
                        array_push($links,$valor);
                    }
                }
            }                        
            
            
        }//if arquivo não vazio
    }//fim while
}//se count links > 0


if ($salvar_txt=='ok')
{
    for($i=0;$i<count($emails);$i++)
    {
        //desencanei
    }
}
    
    if (is_array($emails))
    {
        $encontrados = count($emails);
    }
    else
    {
        $encontrados = "NENHUM";
        $emails = array();
    }
        echo "<table width='70%'  border='1' align='center' cellpadding='5' cellspacing='0' bordercolor='#6A91B7'>
                  <tr bgcolor='#98B3CD'> 
                     <td colspan='2' bgcolor='#98B3CD'> 
                        <p><font size='4' face='Trebuchet MS'><b>&gt; resultado</b></font><br>
                        </p></td>
                  </tr>
                  <tr>
                     <td colspan='2'>
                <center>
                          <b><font size='2' face='Trebuchet MS'>$encontrados </font></b><font size='2' face='Trebuchet MS'>e-mail(s) encontrado(s).<br>
                          <br>";
                          
        for ($i=0;$i<count($emails);$i++)
        {
            echo $emails[$i].", ";
        }
                          
        echo "</font></center></td>
                  </tr>
                </table>
                <br>";


    if (count($historico)!=0)
    {
        $pesquisadas = count($historico);
        
        echo "<table width='70%'  border='1' align='center' cellpadding='5' cellspacing='0' bordercolor='#6A91B7'>
                  <tr bgcolor='#98B3CD'> 
                     <td colspan='2' bgcolor='#98B3CD'> 
                        <p><font size='4' face='Trebuchet MS'><b>&gt; resultado</b></font><br>
                        </p></td>
                  </tr>
                  <tr>
                     <td colspan='2'>
                <center>
                          <b><font size='2' face='Trebuchet MS'>$pesquisadas </font></b><font size='2' face='Trebuchet MS'>URLs pesquisadas:.<br>
                          <br>";
                          
        for ($i=0;$i<count($historico);$i++)
        {
            echo $historico[$i]."<br>";
        }
                          
        echo "</font></center></td>
                  </tr>
                </table>
                <br>";
    }    
}

?>

<title>Buscador de e-mails</title>

<form name="form1" method="post" action="<?=$PHP_SELF;?>">
<input type='hidden' name='enviado' value='ok'>
  <table width="70%"  border="1" align="center" cellpadding="8" cellspacing="0" bordercolor="#6A91B7">
    <tr bgcolor="#98B3CD"> 
      <td colspan="2"><font size="5" face="Trebuchet MS"><b>BUSCADOR DE E-MAILS</b></font></td>
    </tr>
    <tr> 
      <td width="20%" valign="top"> <div align="right"><font size="2" face="Trebuchet MS">Procurar aqui:</font></div></td>
      <td width="80%">
        <textarea name="arquivo" cols="50" rows="10"></textarea>
        </td>
    </tr>
    <tr> 
      <td align="right" valign="top"> <div align="right"><font size="2" face="Trebuchet MS">URL 
          para Start</font></div></td>
      <td><input name="url" type="text" value="http://" size="50"></td>
    </tr>
    <tr> 
      <td align="right" valign="top"> <div align="right"><font size="2" face="Trebuchet MS">Níveis abaixo(páginas):</font></div></td>
      <td><input name="paginas" type="text" value="" size="50"></td>
    </tr>
    <tr> 
      <td align="right" valign="top"> <div align="right"><font size="2" face="Trebuchet MS">Máximo 
          e-mails:</font></div></td>
      <td><input name="maximo" type="text" value="" size="50"></td>
    </tr>
    <tr> 
      <td colspan="2" align="left" valign="top"> <div align="left"></div>
        <table cellpadding="5">
          <tr> 
            <td> <input type="checkbox" name="salvar_txt" value="ok"> </td>
            <td align="left"> <font size="2" face="Trebuchet MS"> Salvar endereços 
              em arquivo .TXT e baixar o arquivo em seguida </font> </td>
          </tr>
        </table></td>
    </tr>
    <tr> 
      <td colspan="2"><div align="right"> 
          <input type="submit" name="Submit" value="Pesquisar">
        </div></td>
    </tr>
  </table>
</form>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Will --

function retorna_links($arquivo,$start)
{
    global $nome_host,$matriz_href;
    $tamanho_start = strlen($start)+1;
        while (strpos($arquivo,$start)>0)
        {
            $posicao = strpos($arquivo,$start);

            $boo = true;
            $i = $posicao+$tamanho_start;
            while ($boo)
            {
                if (in_array(substr($arquivo,$i,1),$matriz_href))
                {
                    $boo = false;
                    $posicao_final = $i;
                }
                else
                {
                    $i++;
                }
            }
            $posicao_inicial = $posicao + $tamanho_start;
            
            if (substr($arquivo,$posicao_inicial,1)=='/')
            {
                $inicio = $posicao_inicial+1;
            }
            else
            {
                $inicio = $posicao_inicial;
            }
            
            $tmp = substr($arquivo,$inicio,($posicao_final)-($inicio));
            $tmp2 = substr($arquivo,$posicao_inicial-$tamanho_start,($posicao_final-1)-($posicao_inicial-$tamanho_start));
            
            if (strpos ($tmp,'http') === false)
            {
                if (strpos ($tmp,'cript') === false)
                {
                    if (strpos ($tmp,'.css') === false)
                    {
                        if (strpos ($tmp,'mailto') === false)
                        {
                            if (strpos ($tmp,'..') === false)
                            {
                                if (strpos ($tmp,'//') === false)
                                {
                                    if (strpos ($tmp,' ') === false)
                                    {
                                        if (strpos ($tmp,'#') === false)
                                        {
                                            if ( ($nome_host[strlen($nome_host)-1]=='/') and ($tmp[strlen($tmp)-1]=='/') )
                                            {
                                                $links[] = substr($nome_host,0,strlen($nome_host)-1).$tmp;
                                            }
                                            else
                                            {
                                                $links[]=$nome_host.$tmp;
                                                //echo "<br>host=[$nome_host]<br>tmp=[$tmp]<br>";                                                    
                                            }
                                        }                                    
                                    }                                
                                }                        
                            }                        
                        }
                    }                    
                }
            }
            else
            {
                $links[]=$tmp;
            }
            $arquivo = str_replace($tmp2,'',$arquivo);
        }
        return $links;
}

Simples não é?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652k
×
×
  • Criar Novo...