Estou lendo o livro Spidering Hacks e estou gostando bastante!

O único “problema” do livro é que em Perl e eu nunca tinha ouvido falar dessa linguagem de script antes… Mas decidi aprender o básico e enfrentar as páginas do livro, o problema é que a linguagem é viciante :S O mesmo aconteceu comigo quando li sobre Lua e Python.
O die… unless é bem legal e útil. AS bibliotecas são muito fáceis de usar e o problema meu mesmo foi para pegar a hora o que é muito estranho, pois até em Java isso é facílimo!
Abaixo um pequeno script para monitorar URLs e gerar uma página simples. Assim você pode colocar um estagiário para ficar de olho
.
use strict;
use LWP;
die "Você precisa informar a(s) URL(s)..." unless defined @ARGV;
my ($sec,$min,$hour,$day,$month,$yr19,@rest) = localtime(time); #fonte: http://www.perlmonks.org/?node_id=659915
my $horas = sprintf("%02d",$hour).":".sprintf("%02d",$min).":".sprintf("%02d",$sec);
my $saida = "<title>Monitoramento de páginas</title>";
$saida .= "<h1>Monitoramento de páginas</h1>";
$saida .= "<br />";
$saida .= "<i>Monitoramento iniciado em $horas</i>";
$saida .= "<table border='1'><thead><tr></tr>";
$saida .= "<th>URL</th>";
$saida .= "<th>Sucesso?</th>";
$saida .= "<th>Resposta do servidor</th>";
$saida .= "<th>Data</th>";
$saida .= "</tr></thead><tbody>";
foreach (@ARGV){
my $buscador = LWP::UserAgent->new;
my $resposta = $buscador->get($_);
($sec,$min,$hour,$day,$month,$yr19,@rest) = localtime(time); #fonte: http://www.perlmonks.org/?node_id=659915
$saida .= "<tr>";
$saida .= "<td>$_</td>";
if($resposta->is_success){
$saida .= "<td style='background:green;'>Sim</td>";
}else{
$saida .= "<td style='background:red;color:white;'>Não</td>";
}
$saida .= "<td>".$resposta->status_line."</td>";
$saida .= "<td>".sprintf("%02d",$hour).":".sprintf("%02d",$min).":".sprintf("%02d",$sec)."</td>";
$saida .= "</tr>";
}
$saida .= "</tbody></table>";
open(ARQUIVO, ">", "relatorio.html") or die "Não foi possível criar o arquivo de saída...";
print ARQUIVO $saida;
close(ARQUIVO);
($sec,$min,$hour,$day,$month,$yr19,@rest) = localtime(time);
print "\n\nMonitoria terminada: ".sprintf("%02d",$hour).":".sprintf("%02d",$min).":".sprintf("%02d",$sec);
É claro que invés de ficar gerando essa página rídicula, você pode sei lá, abrir um chamado, enviar e-mail, etc… Para funcionar só agendar no seu sistema UNIX/LINUX/WINDOWS (não faça isso!) e enviar as URLs a serem monitoradas… Simples, não?
Arquivado em: Uncategorized Etiquetado: | perl, scrapping, spidering hacks


Estou pensando em comprar esse livro… para quem for usar outra linguagem, o livro ajuda? Porque imagino que devem ter conceitos de Xpath, Regex etc aplicáveis em qualquer linguagem (farei em PHP).
Você recomenda esse livro?
Grata!
Olá Natascha,
Ajuda sim, dá uma boa noção de como fazer o scrapping, mas na leitura do livro é indispensável o uso de Perl.
Abraços.