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



» Login
Login:
Senha:

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

Esqueci minha senha

» Wallpaper
Linux: Tux
Por fredbsd


Artigo

Módulos de Web no Perl
Linux user
Tony_baiacu
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_
[ Hits: 1162 ]
Conceito: 10.0   Linux conceitoLinux conceitoLinux conceitoLinux conceitoLinux conceito + 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).

Navegação
   1. Introdução a alguns módulos Web
   2. Usando LinkExtor
   3. Usando TokeParser

Outros artigos deste autor

Leitura recomendada

Comentários
Comentário enviado por eu!noel 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 ....

Comentário enviado por Tony_baiacu 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

Comentário enviado por diluviorh 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.
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.