[SP-pm] Extrair conteúdo HTML. WWW::Mechanize ?

Daniel de Oliveira Mantovani daniel.oliveira.mantovani at gmail.com
Wed Oct 15 08:07:31 PDT 2008


#! /usr/bin/perl -w
use HTML::TreeBuilder;
use WWW::Mechanize;
use strict;
my $m   = WWW::Mechanize->new();
$m->get('http://www.hgcinema.com.br/programacao/index.php'<http://www.hgcinema.com.br/programacao/index.php%27>
);
my $string = $m->content;
my $tree        = HTML::TreeBuilder->new_from_content($string);
#print $tree->as_HTML;
my @filmes      = $tree->look_down(_tag => 'tr',
bgcolor=>"#ffffff",sub{$_[0]->attr('onclick') ne ''});
print "\n\nFILME                Censura         Horario";
foreach(@filmes){
       my @col = $_->look_down(_tag=>'td');
       my ($filme,$censura,$horario) =
($col[0]->as_text,$col[1]->as_text,$col[2]->as_text);
       print "\n$filme         $censura                $horario";
}

Vou ter que estudar aqui. = D
Muito obrigado André

não é um "erro", é um caso de erro. E se o seu get() do site não
funcionar? O site pode estar fora do ar, vc pode estar sem Internet...
considerar possíveis casos de erro é algo importante em programas,
pelo menos em programas sérios =)

Não sabia disso muito obrigado.


[]'s



2008/10/15 breno <breno em rio.pm.org>

> 2008/10/15 Daniel de Oliveira Mantovani <
> daniel.oliveira.mantovani em gmail.com>:
> > Obrigado Breno.
> >
> > Você pode trocar por algo como:
> >
> >
> > if ( $data->success() ) {
> >        @filmes = $data->content() =~ m{<br><i>\((.+?)\)</i></td>}
> >>
> >> gs;
> >> }
> >
> >
> > Não funcionou não.
> >
>
> Estranho. Aqui eu fiz o seguinte programa-teste:
>
> [filmes.pl]
> --------------8<-----------------
>     my @filmes = ();
>    my $data = WWW::Mechanize->new();
>    $data->get('http://www.hgcinema.com.br/programacao/index.php'<http://www.hgcinema.com.br/programacao/index.php%27>
> );
>
>     if ( $data->success() ) {
>        @filmes = $data->content() =~ m{<br><i>\((.+?)\)</i></td>}gs;
>    }
>
>     local $, = ", ";
>    print @filmes;
> --------------8<-----------------
>
> > perl filmes.pl
> A Casa da M�e Joana, The House Bunny, A Guerra dos Rocha, The Mummy:
> Tomb of the Dragon Emperor, Righteous Kill, The Dark Knight, Bezerra
> de Menezes - O Di�rio de um Esp�rito, Taken, Chasseurs de Dragons,
> Eagle Eye, Blindness, Era uma vez..., Hellboy II: The Golden Army,
> Kung Fu Panda, Babylon A.D., The Women, Nights in Rodanthe, Fly Me To
> the Moon, Disaster Movie, You Don�t Mess With The Zohan
>
> ...que era o mesmo que a sua função retornava qdo rodei aqui. Talvez
> se vc mandar uma resposta um pouco menos críptica do que "Não
> funcionou não." eu possa te ajudar a depurar. Mas o André já enviou um
> exemplo com o TreeBuilder, dá uma olhada.
>
> > para vc lidar com o caso de erro no get() que vc faz na linha acima.
> >
> > Não achei o "erro" que você disse no get().
> >
>
> não é um "erro", é um caso de erro. E se o seu get() do site não
> funcionar? O site pode estar fora do ar, vc pode estar sem Internet...
> considerar possíveis casos de erro é algo importante em programas,
> pelo menos em programas sérios =)
>
> []s
>
> -b
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 
print
"\x54\x68\x65\x20\x53\x69\x6c\x65\x6e\x74\x20\x47\x75\x61\x72\x64\x69\x61\x6e",$/
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20081015/33e28cf1/attachment-0001.html>


More information about the SaoPaulo-pm mailing list