Linux slogan
Visite também: BR-Linux.org · Dicas-L · NoticiasLinux · SoftwareLivre.org · UnderLinux · BestLinux



» Screenshot
Linux: azul
Por goss
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha

» Wallpaper
Linux: gstreamer
Por Oki


Artigo

Capturando conteúdo de sites em PHP
Linux user
wilbil
30/05/2003
Aprenda a mascarar notícias fazendo com que pareça que você quem acabou de colocá-las em seu site ou consultar sites e adaptar a resposta para o visual do seu.
Por: william de melo gueiros
[ Hits: 9396 ]
Conceito: nenhum voto.    + quero dar nota ao artigo

Introdução

Estamos ai de volta, por motivos do além não estava conseguindo acessar o site VivaoLinux.com.br, mas isso não vem ao caso.

Vamos iniciar nosso artigo. Wilbil, como você conseguiu chegar a estes comandos?
Pessoal, é o seguinte, mascarar um site nada mais é do que manipular arquivos txt e mais nada.

Qual site você vai mostrar como se mascara?
A empresa onde trabalho necessita mascarar algumas respostas que são muito sigilosas, o que acontece por não haver muito sobre este assunto em PHP explicando detalhadamente, resolvi então fazer o artigo. Podem me enviar perguntas falando a url que vocês querem mascarar que dou a dica.

Vamos parar de teoria e ir para a prática:

<?
$url = "http://www.seilaqualsite.com.br";

$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);
?>

Primeiramente o script abre a url que por sinal é um teste e caso ele não consiga abrir retorna um erro. Você pode abrir qualquer tipo de URL, seja http, https, sites em html, php, asp, jsp, etc.

Para que serve este while com feof?
Serve para percorrer todo o arquivo e gravar seu conteúdo para a variável $lin.

Ou seja, $lin armazenará o conteúdo da url que você especificou. Neste caso conteúdo é igual à código-fonte do site. Por fim, fecha-se a conexão com o site através da função fclose.

Mas Wilbil, o que isso tem a ver com arquivo txt?
Os comandos são os mesmos.

Agora vem os comandos para você localizar algo dentro deste html. Digamos que quero pegar em que posição de caractere está a primeira tabela do site VivaoLinux.com.br

<?
$url = "www.vivaolinux.com.br";
// 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,'<table border="0" cellpadding="0" cellspacing="0" width="779">');

// ele vai me retornar o primeiro table do site
$fechatable = strpos($lin,'</table>');
?>

Agora que já sabemos de onde até onde vamos tirar a média, é aquele negócio que você fazia na escola e sempre dava vermelho por mais que você se esforcasse em roubar nota.

<?
$quantopula = $fechatable - $nprimetable ;

// vou ensinar como funciona o comando substr
substr($lin,onde começa ,pula quantos caracteres);

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

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


echo $conteudo;
?>
Se der erro no seu script e se tiver alguma dúvida, mande-a aqui pelo site mesmo.

Navegação
   1. Introdução

Outros artigos deste autor

Leitura recomendada

Comentários
Comentário enviado por wilbil em 26/07/2003 - 20:15h:

recentemente

tive problemas com a captira de site com conteudo https
que so funcionava se eu passase
pelo ssl

o problema pode ser solucionado compilando o php-4.3 ou superior
com a opcao de --with-ssl

com versoes inferiores nao funciona
deste modo que foi explicado no site

Comentário enviado por ilrdesigner em 23/05/2005 - 11:18h:

Fala amigo... lendo o seu artido sobre capturar codigos das paginas achei interessante... mas naum consegui fazer. como vou capturar o conteúdo das páginas e onde esse conteúdo ficará armazenado????
Abraços

Comentário enviado por wilbil em 24/05/2005 - 11:51h:

o conteudo total fica dentro da variavel $lin
depois de pegar inumeras posicoes dentro do site ele gera o novo conteudo dentro da variavel $conteudo

estarei arrumando este codigofonte para este novo designer do vivaolinux
hoje anoite ponho no ar para vc!!

Comentário enviado por regisquinelato em 01/03/2006 - 10:31h:

Amigo Willbil, eu copiei o código para minha máquina e executei mas alguns sites ele mostra outros não. Mas até então continuo sem solução gostaria apenas de linkar as notícias no site. Por exemplo existe um site de notícias e gostaria de pegar as informações nele contida, como isso é possível?

Obrigado.

Comentário enviado por jcarlosrocha em 19/08/2007 - 12:04h:

Opa Wil, ótimo artigo mas, como faço para capturar notícias de alguns sites para coloca no meu ?

obrigado

Comentário enviado por jhsiqueira em 03/10/2007 - 22:40h:

olá, nao estou conseguindo capturar dados de uma pagina .jsp com protocolo https. passo o endereco da pagina https://endereco... e ele diz que a sessão está expirada. Em uma outra janela eu estou com o mesmo site aberto, onde já informei meu login e senha... neste caso como devo proceder? Obirgado desde já

Comentário enviado por wilbil em 17/10/2007 - 11:47h:

pessoal estive recebendo alguns e-mails sobre pessoas tentando carregar session de um determinado site so para poder pegar seu conteudo interno isso e possivel mas nao por fopen!! de uma estudada em $ch = curl_init(); que inicia um mini browser e antes de enviar um post tem que configuralo com curl_setopt($ch, CURLOPT_URL,"http://$URL");!!curl_setopt($ch, CURLOPT_POST, 1); !! curl_setopt($ch, CURLOPT_POSTFIELDS,$dadosenv); !! entre outros contate o manual para ver as outras configuracao depois de configurar e so pegar o conteudo html e fazer sua logica $html = curl_exec ($ch);

Comentário enviado por salgado em 19/10/2007 - 11:23h:

Willian estou tentando capturar parte desse site(http://www.ioepa.com.br/site/diario_justica.asp)
que está dentro de <blockquote></blockquote>

mas o script demora muito pra responder e depois da uns erros.

vc pode me ajudar ?

Comentário enviado por wilbil em 20/10/2007 - 11:18h:

cara se vc puder me mandar o erro ajuda bastante
o que ele mostra depois de tanto tempo!!!!

Comentário enviado por thiagonovato em 12/06/2008 - 10:37h:

Blz cara... funcionou perfeitamente. Ótimo artigo!

Comentário enviado por condesales em 30/09/2008 - 17:29h:

muito bom msm, me ajudou bastante

Comentário enviado por comfaa em 28/10/2008 - 12:58h:

muito legal !!!


Contribuir com comentário
  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Contribuir com: [ Artigo | Conf | Dica | Pergunta | Script | Screenshot | Simulado | Wallpaper ]
Responsável pelo site: Fábio Berbert de Paula - Copyleft© 2002-2008 Viva o Linux.com.br

Viva o Linux

A maior comunidade Linux do Brasil! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.