Técnico 03 Jan 2004 11:59
Ano novo, RSS etc.
Antes de mais nada, feliz ano novo para todos que lerem isso enquanto o ano ainda é novo
Para um projeto no qual estou começando a trabalhar (mais detalhes sobre ele mais tarde), passei algum tempo ontem lendo sobre os vários sabores de RSS que existem por aí (são vários, sem contar com o Atom, com o qual vou lidar mais tarde). No entanto, é impressionante quantos sites diferentes “ensinam” a ler RSS usando o módulo XML::RSS do Perl. Então, isso é o que eu decidi usar, apesar de eu originalmente ter planejado usar Python ou Java para isso.
Primeiro passo: baixar o módulo XML::RSS na minha máquina. Parece fácil: você faz um
e é só esperar terminar. Bom, só parecia fácil. A minha máquina roda Windows. Eu tenho o Cygwin, que facilita um pouco e que me permitiu usar exatamente o comando acima e ter quase tudo funcionando como esperado, mas o XML::RSS precisa de uma série de outros módulos, e o LWP::Simple não queria instalar (o tar reclamava de um timestamp inválido em um arquivo). Bom, baixando o módulo à mão e fazendo o conhecido “perl Makefile.PL / make / make test / make install” deveria ser o suficiente, mas daí eu precisei ir atrás dos pré-requisitos também manualmente.
Depois de gastar alguns minutos convencendo o módulo CPAN a instalar o módulo URI, tudo funcionou e consegui rodar meu primeiro parser de RSS:
use XML::RSS;
use LWP::Simple;
my $feed;
my $arg = shift;
my $rss = new XML::RSS;
$feed = get($arg);
die “Failed retrieving $arg” unless $feed;
$rss->parse($feed);
foreach my $item (@{$rss->{‘items’}}) {
next unless defined($item->{‘title’}) && defined($item->{‘link’});
print “$item->{‘link’} => $item->{‘title’}\n”;
}
Ok, não é muito elegante ou seguro, mas é um começo. Aguardem detalhes sobre futuros progressos…

