Guest Maker_System Postado Outubro 15, 2007 Denunciar Share Postado Outubro 15, 2007 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? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Outubro 15, 2007 Denunciar Share Postado Outubro 15, 2007 (editado) 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 Outubro 15, 2007 por ESerra Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 15, 2007 Denunciar Share Postado Outubro 15, 2007 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)... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --William -- Postado Outubro 15, 2007 Denunciar Share Postado Outubro 15, 2007 (editado) 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 Outubro 15, 2007 por ESerra Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 15, 2007 Denunciar Share Postado Outubro 15, 2007 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... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --William -- Postado Outubro 15, 2007 Denunciar Share Postado Outubro 15, 2007 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 15, 2007 Denunciar Share Postado Outubro 15, 2007 <?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... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --William -- Postado Outubro 15, 2007 Denunciar Share Postado Outubro 15, 2007 <?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 assimque procure dentro do conteudo a url<a href="*.*">*.*</a> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest Visitante Postado Outubro 15, 2007 Denunciar Share Postado Outubro 15, 2007 Exemplo esse site onde você coloca o user e ele pega os favoritoshttp://knowho.net/fotolog.php Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --William -- Postado Outubro 19, 2007 Denunciar Share Postado Outubro 19, 2007 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>> 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>> 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> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --Will -- Postado Outubro 19, 2007 Denunciar Share Postado Outubro 19, 2007 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 é? Citar Link para o comentário Compartilhar em outros sites More sharing options...
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
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.