Jump to content


Photo

Me Espliquem Como Fazer


  • Faça o login para participar
10 replies to this topic

#1 Urian

Urian

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Não informado

Posted 28/03/2004, 21:07

Alguém pode me dar uma luz de como fazer isto na prática?


Consider the case when you need some information from other website. The simplest way to get it is to write the CGI script that connects to the other website and requests the document by HTTP request. Then you will be able to parse the document and get any information you need. For example currency exchange rate or leatest news from the other website.


The simplest way to do it is to use IO::Socket module. Here is the simple code with comments:

Tells Perl to use module
use IO::Socket;

Host address (or hostname) of website having needed document
my $host="webclass.ru";

Request string of simplest HTTP request to web server on distant host
We should write URL address of requested document here
my $getstring="GET http://webclass.ru/index.php3 HTTP/1.0\n\n";

Creating connection
Port number of web server = 80.
Protocol is tcp.
If connection couldn't be opened the execution dies here.
my $sock = new IO::Socket::INET(PeerAddr => $host, PeerPort => 80, Proto => 'tcp') or die "couldn't connect";

Sending HTTP request string to web server.
print $sock "$getstring";

Read the answer.
my $buf="";
while($line = <$sock>) {
$buf.=$line;
}

Close connection
close($sock);

Now you have requested document in the $buf variable
If you output it:
print $buf;

As armas do civilizador são o álcool, a sífilis, as calças e a Bíblia.

#2 prix

prix

    Duracell: E Duram, Duram, Duram...

  • Usuários
  • 562 posts
  • Sexo:Não informado
  • Interesses:keep walking ...
    jonny walker

Posted 28/03/2004, 22:32

teste.pl

#!/usr/bin/perl

use IO::Socket;

my $host="www.wmonline.com.br";

my $getstring="GET http://www.wmonline.com.br/index.php HTTP/1.0\n\n";

my $sock = new IO::Socket::INET(PeerAddr => $host, PeerPort => 80, Proto => 'tcp') or die "Nao foi possivel conectar.";

print $sock "$getstring";

my $buf="";
while($line = <$sock>) {
$buf.=$line;
}

close($sock);

print "Content-type: text/html\n\n";
print $buf;


coloque isso no seu servidor de chmod 755 e veja o codigo da pagina inicial do site da wm online.

basicamente o texto que vc postou ai em cima, eh um script que pega a pagina, como ? ele autovisita o site e salva seu codigo fonte.

o que eu posso fazer com isso ?

vc pode salvar em um arquivo txt, pesquisar as palavras que vc deseja e apaga-lo depois ou pesquisar sem ter que abrir um arquivo txt.

print join'',(reverse  map{/d([a-z])d/}split/W/,'$5x6@314&60f%3i4#moo^1r2#moo^1p2')," ", pack ("B*",'01110000011001010111001001101100')," ", pack ("B*",'011011010110111101101110011010110110010101111001'), "n";
sleep 5;


E-Mails, topicos ou mensagens privadas não serão respondidas a menos que eu considere uma relevancia/necessidade na mesma.

#3 Urian

Urian

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Não informado

Posted 30/03/2004, 00:42

Valeu Prix.

Vou tentar.
As armas do civilizador são o álcool, a sífilis, as calças e a Bíblia.

#4 Urian

Urian

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Não informado

Posted 30/03/2004, 01:31

Tem como trabalhar com perl dentro do delphi?
As armas do civilizador são o álcool, a sífilis, as calças e a Bíblia.

#5 prix

prix

    Duracell: E Duram, Duram, Duram...

  • Usuários
  • 562 posts
  • Sexo:Não informado
  • Interesses:keep walking ...
    jonny walker

Posted 30/03/2004, 02:06

cara acho que tem sim, mas nunca fiz isso naum.
entra no google e digita
perl into delphi
ou
delphi+perl
ou
perl+delphi

ve se tu acha algo.

print join'',(reverse  map{/d([a-z])d/}split/W/,'$5x6@314&60f%3i4#moo^1r2#moo^1p2')," ", pack ("B*",'01110000011001010111001001101100')," ", pack ("B*",'011011010110111101101110011010110110010101111001'), "n";
sleep 5;


E-Mails, topicos ou mensagens privadas não serão respondidas a menos que eu considere uma relevancia/necessidade na mesma.

#6 Urian

Urian

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Não informado

Posted 01/04/2004, 19:53

Depois que utilizar este código e baixar a página, como fazer uma pesquisa dentro dela ?
As armas do civilizador são o álcool, a sífilis, as calças e a Bíblia.

#7 prix

prix

    Duracell: E Duram, Duram, Duram...

  • Usuários
  • 562 posts
  • Sexo:Não informado
  • Interesses:keep walking ...
    jonny walker

Posted 01/04/2004, 20:44

#!/usr/bin/perl

use IO::Socket;

my $host="www.wmonline.com.br";

my $getstring="GET http://www.wmonline.com.br/index.php HTTP/1.0\n\n";

my $sock = new IO::Socket::INET(PeerAddr => $host, PeerPort => 80, Proto => 'tcp') or die "Nao foi possivel conectar.";

print $sock "$getstring";

my $buf="";
while($line = <$sock>) {
$buf.=$line;
}

close($sock);

open(SITE,">>site.txt");
print SITE $buf;
close(SITE);

open (P,"site.txt");
@dados = <P>;
close (P);

$linha = @dados;

$palavra = 'FIM RODAPE'; # palavra que sera pesquisada.
@divide_palavra = split (/ /,$palavra); # caso vc use mais de um palavra para pesquisa, separe-as por espaço

print "Content-type: text/html\n\n";
until ($linha == 0) {

foreach $busca (@divide_palavra) {
    if ($dados[$linha] =~ /$busca/i) {
    print "A palavra foi encontrada na linha: $linha.<br> Veja a linha toda aqui:<br>$dados[$linha]<br><br><br>"; last;
    } else {
    print "Nada na linha: $linha<br><br>"; last;
    }
}

--$linha;
}


print join'',(reverse  map{/d([a-z])d/}split/W/,'$5x6@314&60f%3i4#moo^1r2#moo^1p2')," ", pack ("B*",'01110000011001010111001001101100')," ", pack ("B*",'011011010110111101101110011010110110010101111001'), "n";
sleep 5;


E-Mails, topicos ou mensagens privadas não serão respondidas a menos que eu considere uma relevancia/necessidade na mesma.

#8 Urian

Urian

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Não informado

Posted 02/04/2004, 00:45

Valeu novamente.........

depois manda a conta

hehehehehehe
As armas do civilizador são o álcool, a sífilis, as calças e a Bíblia.

#9 prix

prix

    Duracell: E Duram, Duram, Duram...

  • Usuários
  • 562 posts
  • Sexo:Não informado
  • Interesses:keep walking ...
    jonny walker

Posted 02/04/2004, 03:17

so num vo manda a conta pq nao quero matar ninguem do coração... =D hi hi hi

print join'',(reverse  map{/d([a-z])d/}split/W/,'$5x6@314&60f%3i4#moo^1r2#moo^1p2')," ", pack ("B*",'01110000011001010111001001101100')," ", pack ("B*",'011011010110111101101110011010110110010101111001'), "n";
sleep 5;


E-Mails, topicos ou mensagens privadas não serão respondidas a menos que eu considere uma relevancia/necessidade na mesma.

#10 Urian

Urian

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Não informado

Posted 03/04/2004, 14:40

Eu entendi a lógica desse código, mas não conheço muito Perl.....
Faço cgi no Delphi e queria saber se nele existe esses comandos ou recursos parecidos.

valeu.
As armas do civilizador são o álcool, a sífilis, as calças e a Bíblia.

#11 prix

prix

    Duracell: E Duram, Duram, Duram...

  • Usuários
  • 562 posts
  • Sexo:Não informado
  • Interesses:keep walking ...
    jonny walker

Posted 03/04/2004, 15:24

Deve ter sim... mas tu vai ter que pesquisar =D

Eu nao custumo usar cgi com delphi ou eu uso um outro outro.

print join'',(reverse  map{/d([a-z])d/}split/W/,'$5x6@314&60f%3i4#moo^1r2#moo^1p2')," ", pack ("B*",'01110000011001010111001001101100')," ", pack ("B*",'011011010110111101101110011010110110010101111001'), "n";
sleep 5;


E-Mails, topicos ou mensagens privadas não serão respondidas a menos que eu considere uma relevancia/necessidade na mesma.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq