O LWP é todo implementado em Perl, então não ganha do Curl que é implementado em C por exemplo, mas nunca se esqueçam:<div>   &quot;Otimização prematura é a raiz para todo mal&quot;</div><div>    --Chico Xavier</div><div>Ops, Donald Knuth :P</div>
<div><br><div><br><div class="gmail_quote">2010/12/21 breno <span dir="ltr">&lt;<a href="mailto:breno@rio.pm.org">breno@rio.pm.org</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
2010/12/20 Stanislaw Pusep &lt;<a href="mailto:creaktive@gmail.com">creaktive@gmail.com</a>&gt;:<br>
<div class="im">&gt; Dependendo da complexidade, talvez compense usar diretamente o LWP, que é o<br>
&gt; backend do WWW::Mechanize:<br>
&gt; <a href="http://search.cpan.org/~gaas/libwww-perl-5.837/lib/LWP.pm" target="_blank">http://search.cpan.org/~gaas/libwww-perl-5.837/lib/LWP.pm</a><br>
&gt; WWW::Mechanize é muito power, mas também lerdo e pesado :(<br>
&gt;<br>
<br>
</div>Acho que alguns diriam o mesmo do LWP, né Lorn? ;-)<br>
<br>
De qualquer forma, se o Eduardo está em seus primeiros passos com<br>
Perl, recomendo trabalhar com APIs amigáveis e o mais alto-nível<br>
possível.<br>
<br>
O mech é bom se vc se entende com a API dele, mas lembre-se que na<br>
hora de fazer o parsing do conteúdo vc precisará de outra ferramenta<br>
(evite expressões regulares em cima do $mech-&gt;content a menos que vc<br>
*realmente* saiba o q está fazendo:<br>
<br>
<br>
-------------8&lt;-------------<br>
use strict;<br>
use warnings;<br>
<br>
use WWW::Mechanize;<br>
use HTML::TreeBuilder;<br>
<br>
my $mech = WWW::Mechanize-&gt;new;<br>
$mech-&gt;get( &quot;<a href="http://exemplo.com" target="_blank">http://exemplo.com</a>&quot; );<br>
<br>
my $html = HTML::TreeBuilder-&gt;new_from_content( $mech-&gt;content );<br>
-------------&gt;8-------------<br>
<br>
Daí é só consultar a documentação do WWW::Mechanize para navegar pelo<br>
conteúdo (submeter formulários, seguir links, etc), e do HTML::Element<br>
pra analisar o HTML retornado. Há ainda o WWW::Mechanize::TreeBuilder,<br>
que combina os dois módulos acima assim vc não precisa do passo<br>
intermediário e pode fazer tudo a partir de 1 objeto apenas (em vez de<br>
2 como acima)<br>
<br>
Se preferir trabalhar com XPath (mais fácil pra muita gente), pode<br>
trocar no exemplo acima &quot;HTML::TreeBuilder&quot; por<br>
&quot;HTML::TreeBuilder::XPath&quot; ou usar o HTML::Query, ou então o... bom,<br>
tem sempre mais de uma maneira de fazer as coisas :-)<br>
<br>
Mas pra XPath o que eu recomendo mesmo é usar algo próprio, como o<br>
Web::Scraper ou - mais amigável - o Scrapy:<br>
<br>
-------------8&lt;-------------<br>
use strict;<br>
use warnings;<br>
<br>
use Scrapy  &#39;:syntax&#39;;<br>
<br>
crawl &#39;<a href="http://search.cpan.org/recent" target="_blank">http://search.cpan.org/recent</a>&#39;, {<br>
    &#39;#cpansearch li a&#39; =&gt; sub {<br>
        print shift-&gt;text, &quot;\n&quot;;<br>
    }<br>
};<br>
-------------&gt;8-------------<br>
<br>
<br>
[]s<br>
<font color="#888888"><br>
-b<br>
</font><div><div></div><div class="h5">=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L&lt;<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>&gt;<br>
=end disclaimer<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>lorn at lornlab dot org<br>Lindolfo &quot;Lorn&quot; Rodrigues<br><br>
</div></div>