Módulos de Web no Perl
Neste artigo apresento alguns métodos para trabalhar com "tags" e "reg" em Perl de maneira simples e prática usando alguns módulos.
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.
Abaixo, mais um exemplo, onde usaremos LWP::UserAgent e HTTP::Request.
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).
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);
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 ";
}
}
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).
Tony posso te fazer umas perguntas,
o OpenBSD já está usando o driver nvidia ??????
E desktop 3d, algum dia vai ter ????????????
vlw ....