Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

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

Esqueci minha senha



Artigo

Módulos de Web no Perl
Linux user
Cooler_
19/08/2008
Neste artigo apresento alguns métodos para trabalhar com "tags" e "reg" em Perl de maneira simples e prática usando alguns módulos.
Por: C00L3R_ | Blog: http://bugsec.com.br
[ Hits: 6274 ]
Conceito: 10.0   1 voto(s)1 voto(s)1 voto(s)1 voto(s)1 voto(s) + quero dar nota ao artigo

Introdução a alguns módulos Web

Vejo que sempre que alguém está estudando Perl já quer ir direto para sockets sem saber usar um "print" direito. Bem, sockets são legais, porém tem muitos outros módulos para se trabalhar no Perl. Eu mostrarei alguns deles.

Vamos fazer uma coisa simples. Primeiro, baixar o conteúdo de uma página -- usando LWP::Simple -- e depois salvar o seu conteúdo em um arquivo texto.

use LWP::Simple;
my $resultado = get('http://www.pagina_boba.com/index.html');
open(texto, ">>resultado.txt"); print texto $resultado; close(texto);
#você pode fazer a mesma coisa usando outro modulo como exemplo< br/> #usando IO::Socket...
my $socket = IO::Socket::INET->new(
        PeerAddr => "www.wiki.com",
        PeerPort => "80",
        Timeout => "7",
        Proto => "tcp"
    );
die "Não foi possível criar a socket " unless $socket;
if ($socket) {
    print $socket "GET /index.html HTTP/1.0 ";
    while (<$socket>) {
        print "$_";
    }
}
close($socket);

Abaixo, mais um exemplo, onde usaremos LWP::UserAgent e HTTP::Request.

use LWP::UserAgent;
print "pegando temperatura Brasil by C00L3R ";
print "Qual estado você quer ver a temperatura? ex sao_paulo ";
my $local=<STDIN>; chomp $local;
my $pagina="http://www1.folha.uol.com.br/folha/tempo/br-$local.shtml";
$agent = new LWP::UserAgent;
$request = HTTP::Request->new('GET',$pagina);
$result = $agent->request($request);
@result = $result->content();
open(RES,">","temperatura.txt");
print RES @result; close(RES); open(RES,"<","temperatura.txt");
@texto = <RES>; close(RES); unlink ("temperatura.txt");
foreach (@texto) {
    if ($_ =~ m/^<p><b>Temperatura:</b> (.*?)

/) {
        my $graus="$1";
        print "Local: $local ";
        print "Temperatura: $graus ";
    }
}

Nesse programa, um pouco mais complexo que os outros, não só o código-fonte da página é baixado como também salvo em um TXT e dele retirada a informação da temperatura, salva em uma variável usando regex (expressões regulares).

Próxima página >>




Páginas do artigo
   1. Introdução a alguns módulos Web
   2. Usando LinkExtor
   3. Usando TokeParser

Outros artigos deste autor

Leitura recomendada
Nenhum artigo encontrado.

Comentários
[1] Comentário enviado por removido em 19/08/2008 - 16:59h:

muito bom .....
Tony posso te fazer umas perguntas,
o OpenBSD já está usando o driver nvidia ??????
E desktop 3d, algum dia vai ter ????????????

vlw ....

[2] Comentário enviado por Cooler_ em 19/08/2008 - 19:32h:

fica dificil,
lembra da meta do openBSD "no blobs"
ou seja sem drivers proprietarios que não mostra a source he o caso da Nvidia e da ATI
OpenBSD da suporte para drivers Open Source como o drive da Ralink...
quanto ao desk 3d acho dificil viu soh se a Nvidia liberar source de um codigo fonte de um
dos seus muitos drivers, se tiver algum ja deve tar rolando no OpenBSD
abraço

[3] Comentário enviado por renato.leite em 19/08/2008 - 19:44h:

bem legal cooler, agora voce ta la no boteco e aki no vivaolinux tbm... xD


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.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.