Olá pessoal, o André me ensinou uma maneira muito divertida de retirar conteúdo com HTML::TreeBuilder.<br><br>Ele ensinou a pegar os atributos com attr(), por exemplo pegar o &lt;a href=&quot;<a href="http://pegar_isso_aqui.com">http://pegar_isso_aqui.com</a>&quot;&gt; usaria $a-&gt;attr(&#39;href&#39;).<br>
<br>Desse jeito funciona perfeitamente:<br>&lt;code&gt;<br>&nbsp; my @cidades = $tree_page-&gt;look_down(_tag =&gt; &#39;li&#39;);<br>

&nbsp; foreach my $cidade (@cidades) {<br>

&nbsp;&nbsp;&nbsp;&nbsp; my $html = $cidade-&gt;as_HTML;<br>

&nbsp;&nbsp;&nbsp;&nbsp; my $tree_cidade = HTML::TreeBuilder-&gt;new_from_content($html);<br>
&nbsp;&nbsp;&nbsp;&nbsp; $tree_cidade-&gt;look_down(_tag =&gt; &#39;a&#39;);<br>&nbsp;&nbsp;&nbsp;&nbsp; $tree_cidade-&gt;as_HTML =~ m{href=&quot;(.+?)&quot;};<br>&nbsp;&nbsp;&nbsp;&nbsp; push(@estados,&quot;$1/bairros&quot;) if $1 !~ m{cidade};<br>&lt;/code&gt;<br><br>Porém do jeito que seria o correto não funciona:<br>
<br>&lt;code&gt;<br>&nbsp; my @cidades = $tree_page-&gt;look_down(_tag =&gt; &#39;li&#39;);<br>
&nbsp; foreach my $cidade (@cidades) {<br>
&nbsp;&nbsp;&nbsp;&nbsp; my $html = $cidade-&gt;as_HTML;<br>
&nbsp;&nbsp;&nbsp;&nbsp; my $tree_cidade = HTML::TreeBuilder-&gt;new_from_content($html);<br>&nbsp;&nbsp;&nbsp;&nbsp; $tree_cidade-&gt;look_down(_tag =&gt; &#39;a&#39;);<br>
&nbsp;&nbsp;&nbsp;&nbsp; my $url = $tree_cidade-&gt;attr(&#39;href&#39;);<br><b>39 </b>push(@estados,&quot;$url/bairros&quot;) if $url !~ m{cidade};<br>&lt;/code&gt;<br><br>Da o seguinte erro: <br>&lt;erro&gt;<br>Use of uninitialized value $url in concatenation (.) or string at <a href="http://vcvai-0.01.pl">vcvai-0.01.pl</a> line 39.<br>
&lt;/erro&gt;<br><br>Se eu tento dar um print &quot;$url\n&quot;; da o mesmo erro na linha do print.<br><br>Tentei de várioas maneiras e nada!<br><br>[]&#39;s<br><br><br><br><div class="gmail_quote">2008/11/28 Nelson Ferraz <span dir="ltr">&lt;<a href="mailto:nferraz@gmail.com">nferraz@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Muito boa explicacão, André.<br>
<br>
Que tal colocá-la no wiki, pra facilitar a nossa vida mais tarde?<br>
(Para nós e para outras pessoas :))<br>
<br>
Sugiro colocá-lo na forma de uma Receita:<br>
<br>
---<br>
<br>
 &nbsp; &nbsp;Título: Como fazer parsing de HTML<br>
<br>
 &nbsp; &nbsp;Problema: você precisa extrair informacões de um arquivo HTML<br>
<br>
 &nbsp; &nbsp;Solucão: use HTML::TreeBuilder<br>
<br>
 &nbsp; &nbsp;Discussão: (explicacão acima)<br>
<br>
---<br>
<br>
Você pode usar este link para publicar uma nova receita:<br>
<br>
- <a href="http://www.perl.org.br/bin/viewauth/Artigos/WebReceitaForm" target="_blank">http://www.perl.org.br/bin/viewauth/Artigos/WebReceitaForm</a><br>
<br>
[]s<br>
<br>
Nelson<br>
<font color="#888888"><br>
--<br>
Nelson Ferraz<br>
<br>
Free Software Foundation Associate Member #3203<br>
Projeto Software Livre Brasil (<a href="http://www.softwarelivre.org.br" target="_blank">www.softwarelivre.org.br</a>)<br>
Sociedade Perl do Brasil (<a href="http://www.perl.org.br" target="_blank">www.perl.org.br</a>)<br>
Rede Livre de Compartilhamento de Cultura Digital<br>
</font><div><div></div><div class="Wj3C7c">_______________________________________________<br>
SaoPaulo-pm mailing list<br>
<a href="mailto:SaoPaulo-pm@pm.org">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>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><a href="http://mantovanihouse.blogspot.com/">http://mantovanihouse.blogspot.com/</a><br><br>-------(\_------------_/)-----------<br>-------)--(----------)--(-----------<br>
------(----(---------)----)----------<br>-------)----(-------)----(-----------<br>-------(----(-------)----)-----------<br>--------\_-(\\.---.//)-_/------------<br>----------\)&#39; -8--8- &#39;(/--------------<br>-----------/------------\---------------<br>
----------(--)--------(--)--------------<br>------------(_c__c_)----------------<br>----------------------------------------<br>