<div dir="ltr">Obrigado Breno.<br><br>Você pode trocar por algo como:<br>
<br>
<br>
if ( $data->success() ) {<br>
@filmes = $data->content() =~ m{<br><i>\((.+?)\)</i></td>}<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
gs;<br>
}</blockquote><div> <br>Não funcionou não.<br><br>
para vc lidar com o caso de erro no get() que vc faz na linha acima.<br><br>Não achei o "erro" que você disse no get().<br><br>Como alternativa à regexp, você pode passear pela árvore HTML usando<br>
HTML::TableContentParser ou com outros módulos de scraping como o<br>
pQuery ou o Web::Scraper:<br><br>Vou tentar usar isso.<br><br>Muito obrigado Breno ^^<br></div><br>Abraços<br><br><div class="gmail_quote">2008/10/14 breno <span dir="ltr"><<a href="mailto:breno@rio.pm.org" target="_blank">breno@rio.pm.org</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Daniel,<br>
<br>
infelizmente pelo que vi o site em questão usa tabelas e não trabalha<br>
com ids, então o scraping será mais passível de problemas (leia-se "se<br>
mudarem alguma coisa no layout seu script provavelmente vai parar de<br>
funcionar").<br>
<br>
Sobre o trecho de código:<br>
<div><br>
> foreach ( split("\n",$data->content()) ) {<br>
> if ( m{</strong><br><i> \( (.+?) \) </i></td>}igx ) {<br>
> push(@filmes,$1);<br>
<br>
</div>Você pode trocar por algo como:<br>
<br>
<br>
if ( $data->success() ) {<br>
@filmes = $data->content() =~ m{<br><i>\((.+?)\)</i></td>}gs;<br>
}<br>
<br>
me parece mais rápido (menos operações) e legível, além dar a deixa<br>
para vc lidar com o caso de erro no get() que vc faz na linha acima.<br>
<br>
Como alternativa à regexp, você pode passear pela árvore HTML usando<br>
HTML::TableContentParser ou com outros módulos de scraping como o<br>
pQuery ou o Web::Scraper:<br>
<br>
[]s<br>
<br>
-b<br>
<br>
<br>
2008/10/14 Daniel de Oliveira Mantovani <<a href="mailto:daniel.oliveira.mantovani@gmail.com" target="_blank">daniel.oliveira.mantovani@gmail.com</a>>:<br>
<div><div></div><div>> print "Bom dia\n" if day == manha;<br>
> print "Boa tarde\n" if day == tarde;<br>
> print "Boa noite\n" if day == noite;<br>
><br>
> Bom pessoal como vocês disseram que não é bom usar Expressões Regulares para<br>
> extrair conteúdo HTML, e pelo que vi no manual do WWW::Mechanize, porém eu<br>
> não consigo extrair com a mesma eficácia.<br>
><br>
> Essa parte do código:<br>
><br>
> foreach ( split("\n",$data->content()) ) {<br>
> if ( m{</strong><br><i> \( (.+?) \) </i></td>}igx ) {<br>
> push(@filmes,$1);<br>
><br>
> Quero usar o WWW::Mechanize para extrair essa parte.<br>
> Olhei os exemplos do WWW::Mechanize:<br>
> <a href="http://search.cpan.org/%7Epetdance/WWW-Mechanize-1.34/lib/WWW/Mechanize/Examples.pod" target="_blank">http://search.cpan.org/~petdance/WWW-Mechanize-1.34/lib/WWW/Mechanize/Examples.pod</a><br>
> e vi que o autor usou Expressões Regulares para extrair:<br>
> @bits = $r =~ m{<TD.*?>(.*?)</TD>}gs;<br>
><br>
> O meu projeto abaixo:<br>
><br>
><br>
> #!/usr/bin/perl<br>
><br>
> use strict;<br>
> use warnings;<br>
> use WWW::Mechanize;<br>
> use WWW::Search::Mininova;<br>
><br>
> {package Hgtorrent;<br>
><br>
> sub Nomes<br>
> {<br>
> my $self = shift;<br>
> my @filmes = ();<br>
> my $data = WWW::Mechanize->new();<br>
> $data->get('<a href="http://www.hgcinema.com.br/programacao/index.php%27" target="_blank">http://www.hgcinema.com.br/programacao/index.php'</a>);<br>
> foreach ( split("\n",$data->content()) ) {<br>
> if ( m{</strong><br><i> \( (.+?) \) </i></td>}igx ) {<br>
> push(@filmes,$1);<br>
> }<br>
> }<br>
> return @filmes;<br>
> }<br>
><br>
> sub Procurar<br>
> {<br>
> my $self = shift;<br>
> my $busca = shift;<br>
> my $mini = WWW::Search::Mininova->new( category => 'Movies',sort => 'Seeds'<br>
> ,);<br>
> $mini->search("$busca");<br>
> my $result = $mini->result;<br>
> if (defined $result->{name}) {<br>
> print "Name: ", $result->{name},$/,<br>
> "Seeds: ", $result->{seeds},$/,<br>
> "Leechers: ", $result->{leechers},$/,<br>
> "Uri: ", $result->{uri},$/,<br>
> "Download uri: ", $result->{download_uri},$/,<br>
> "Size: ", $result->{size},$/,<br>
> "Category: ", $result->{category},$/,<br>
> "Sub Category: ", $result->{subcategory},$/,<br>
> "Added data: " ,$result->{added_date},$/;<br>
> }<br>
> else {<br>
> print "Not Found\n";<br>
> }<br>
> }<br>
><br>
><br>
> }<br>
><br>
> -D-----> Abraço<br>
> --<br>
> print<br>
> "\x54\x68\x65\x20\x53\x69\x6c\x65\x6e\x74\x20\x47\x75\x61\x72\x64\x69\x61\x6e",$/<br>
><br>
</div></div>> _______________________________________________<br>
> SaoPaulo-pm mailing list<br>
> <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
> <a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
><br>
_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>print "\x54\x68\x65\x20\x53\x69\x6c\x65\x6e\x74\x20\x47\x75\x61\x72\x64\x69\x61\x6e",$/<br>
</div>