• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Cybernavigator

Extrair texto de um site...

12 mensagens neste tópico

Boas, tenho uma enorme duvida k n consigo resolver.

:wallbash:

É assim, eu keria retirar o texto de um site, http://lusomundo.sapo.pt/Xw7/ , mas só o texto, sem hiperligações, sem imagens e sem nd. Supostamente em php é possivel,

mas já tentei fazer <? include...?> e não dá, como é lógico. mas mesmo assim tentei. mas sinceramente, já tou farto de procurar e nd  :nono1:

Será k me poderiam dar um ajuda?  :dontgetit:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Consegues tirar a pagina toda e não consegues "filtrar" para ficares só com o texto ou não consegues mesmo tirar a pagina? Se for só para separar o texto do html podes usar a função strip_tags do PHP.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, mas para isso eu tenho k incluir o site?

Não me poderiam dar um exemplo?

Obrigado desde já pela ajuda...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

assim nao te safas... o php5 já tem muitos poucas funções que apontam para sites externos por motivos de segurança. Porque é que nao sacaso site para o teu computador e depis fazes um script que te remova tags de links, imagens etc etc?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usando a dica do francodacosta criei este script.

Não deve funcionar muito correctamente se a pagina da lusomundo for actualizada mas isso é uma questão de aperfeiçoar.

Aqui vai:

//o codigo que se segue coloca na variavel $handle o ficheiro http://lusomundo.sapo.pt/Xw7/ que permite apenas ler o ficheiro ("r")
$handle = @fopen("http://lusomundo.sapo.pt/Xw7/", "r");

//este ciclo for utilizei para percorrer ate a linha 65 do ficheiro fonte.
//visto que o inicio do ficheiro fonte nao nos interessa (banner e outras coisas)
for ( $i=0; $i<65; $i++){
$buffer = fgets($handle, 4096);
}
//aqui continua a percorrer o ficheiro ate a linha 312 porque a partir dai nao interessa
//e imprime o conteudoo dessas linhas
for ( $i=65; $i<312; $i++){
$buffer = fgets($handle, 4096);
echo $buffer;
}
//isto serve para fechar o ficheiro porque nao vai ser mais usado
fclose($handle);

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usando a dica do francodacosta criei este script.

Não deve funcionar muito correctamente se a pagina da lusomundo for actualizada mas isso é uma questão de aperfeiçoar.

Aqui vai:

$handle = @fopen("http://lusomundo.sapo.pt/Xw7/", "r");
for ( $i=0; $i<65; $i++){
$buffer = fgets($handle, 4096);
}
for ( $i=65; $i<312; $i++){
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);

Poderias (se nao fosse pedir muito e claro) por uns comentarios ou algo parecido a explicar o que cada linha de codigo faz... talves ajudasse muitos que aqui viessem procurar :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tópico editado.

Espero que esteja esclarecedor.

Cumps,

Pedantilva

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

uma outra questao...

E se quisermos tirar a formataçao do texto que vamos copiar ? como teremos de proceder ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para isso já vais ter que começar a filtrar os dados recebidos.

É um pouco mais complicado.

Mas para este exemplo basta ir a configurações de pagina e definir como quisermos.

<!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>Untitled Document</title>
<style type="text/css">
<!--
body,td,th {
font-family: Verdana, Arial, Helvetica, sans-serif;
color: #FFFFFF;
}
body {
background-color: #000000;
}
-->
</style></head>

<body><? 
$handle = @fopen("http://lusomundo.sapo.pt/Xw7/", "r");
for ( $i=0; $i<65; $i++){
$buffer = fgets($handle, 4096);
}
for ( $i=65; $i<312; $i++){
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
?>
</body>
</html>

Pré-visualizar aqui

Cumps,

Pedantilva

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por acaso ando agora a desenvolver um script que faz mais ou menos isso que queres.

A ideia é fazer um interface multi-utilizador com quotas de disco para o eMule, para isso adaptei um script que liga ao webinterface da mula e saca as informações necessárias, desde nomes de ficheiros, tamanho, progresso, etc...de todos os downloads em curso.

Depois com base na hash de cada ficheiro vai á BD buscar o user que está associado a essa hash e dá permissões de controlo sobre o ficheiro.

Estou-me a basear no pMule que usa a class do Snoopy para se ligar ao webinterface e sacar o HTML, depois este é interpretado com as Regular Expressions do PHP que para mim ainda são uma grande confusão e acabei por dar a volta com funções de strings normais.

Infelizmente o pMule não funciona para as versões recentes do emule e como não percebo nada de Regular Expressions acabei por usar algumas partes do código para fazer o script de raiz á minha maneira.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora