Jump to content
Cybernavigator

Extrair texto de um site...

Recommended Posts

Cybernavigator

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:


Melhores cumprimentos,João Lopes***Esta mensagem foi escrita ao abrigo do novo Acordo Ortográfico***

Share this post


Link to post
Share on other sites
hma

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.

Share this post


Link to post
Share on other sites
Cybernavigator

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

Não me poderiam dar um exemplo?

Obrigado desde já pela ajuda...


Melhores cumprimentos,João Lopes***Esta mensagem foi escrita ao abrigo do novo Acordo Ortográfico***

Share this post


Link to post
Share on other sites
pedrotuga

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?

Share this post


Link to post
Share on other sites
Ped@ntilva

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

Share this post


Link to post
Share on other sites
styr

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

Share this post


Link to post
Share on other sites
styr

uma outra questao...

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

Share this post


Link to post
Share on other sites
Ped@ntilva

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

Share this post


Link to post
Share on other sites
satanuke

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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.