Manoel, você também pode usar o Web::Scraper (<a href="https://metacpan.org/module/Web::Scraper">https://metacpan.org/module/Web::Scraper</a>), que faz o scraping e já carrega os dados em uma estrutura hierárquica:<div><br>

</div><div><div><font face="'courier new', monospace">use Data::Printer;</font></div><div><font face="'courier new', monospace">use URI;</font></div><div><font face="'courier new', monospace">use Web::Scraper;</font></div>

<div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">my $r = scraper {</font></div><div><font face="'courier new', monospace">    process q(//head/title),</font></div>

<div><font face="'courier new', monospace">        title => 'text';</font></div><div><font face="'courier new', monospace">    process q(//h1|//h2|//h3),</font></div><div><font face="'courier new', monospace">        q(heading[]) => 'text';</font></div>

<div><font face="'courier new', monospace">}->scrape(</font></div><div><font face="'courier new', monospace">    URI->new(qw(<a href="http://mojolicio.us/perldoc">http://mojolicio.us/perldoc</a>))</font></div>

<div><font face="'courier new', monospace">);</font></div><div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">p $r;</font></div><div><br></div><div>

Resultado:</div><div><br></div><div><div><font face="'courier new', monospace">\ {</font></div><div><font face="'courier new', monospace">    heading   [</font></div><div><font face="'courier new', monospace">        [0] "TABLE OF CONTENTS",</font></div>

<div><font face="'courier new', monospace">        [1] "NAME",</font></div><div><font face="'courier new', monospace">        [2] "DON'T PANIC!",</font></div><div><font face="'courier new', monospace">        [3] "LEARNING PERL",</font></div>

<div><font face="'courier new', monospace">        [4] "TUTORIAL",</font></div><div><font face="'courier new', monospace">        [5] "GUIDES",</font></div><div><font face="'courier new', monospace">        [6] "HIGHLIGHTS",</font></div>

<div><font face="'courier new', monospace">        [7] "MORE"</font></div><div><font face="'courier new', monospace">    ],</font></div><div><font face="'courier new', monospace">    title   "Mojolicious::Guides - Mojolicious guide to the galaxy"</font></div>

<div><font face="'courier new', monospace">}</font></div></div><div><br></div>ABS()<br><br>
<br><br><div class="gmail_quote">On Thu, Apr 12, 2012 at 15:11, Manoel Domingues Junior <span dir="ltr"><<a href="mailto:manoel.domingues.junior@gmail.com">manoel.domingues.junior@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Olá pessoal,<br><br>Estou tentando montar um crawller, mas estou empacado.<br><br>No meu maior problema está sendo em como fazer para pegar o conteúdo que aparece ao lado de Heading e colocá-lo em uma varíavel.<br><pre><span>  </span><span>use</span><span> </span><span>Mojo</span><span>::</span><span>UserAgent</span><span>;</span><span>

  </span><span># Fetch web site</span><span>
  </span><span>my</span><span> $ua </span><span>=</span><span> </span><span>Mojo</span><span>::</span><span>UserAgent</span><span>-></span><span>new</span><span>;</span><span>
  </span><span>my</span><span> $tx </span><span>=</span><span> $ua</span><span>-></span><span>get</span><span>(</span><span>'<a href="http://mojolicio.us/perldoc" target="_blank">mojolicio.us/perldoc</a>'</span><span>);</span><span>

  </span><span># Extract title</span><span>
  say </span><span>'Title: '</span><span>,</span><span> $tx</span><span>-></span><span>res</span><span>-></span><span>dom</span><span>-></span><span>at</span><span>(</span><span>'head > title'</span><span>)-></span><span>text</span><span>;</span><span>

  </span><span># Extract headings</span><span>
  $tx</span><span>-></span><span>res</span><span>-></span><span>dom</span><span>(</span><span>'h1, h2, h3'</span><span>)-></span><span>each</span><span>(</span><span>sub</span><span> </span><span>{</span><span>
    say </span><span>'Heading: '</span><span>,</span><span> shift</span><span>-></span><span>all_text</span><span>;</span><span>
  </span><span>});<br><br><br></span></pre>Executando esse código (ele está na página do Mojolicious) teremos:<br><br>Title: Mojolicious::Guides - Mojolicious guide to the galaxy<br>Heading: TABLE OF CONTENTS<br>

Heading: NAME<br>Heading: DON'T PANIC!<br>Heading: LEARNING PERL<br>Heading: TUTORIAL<br>Heading: GUIDES<br>Heading: HIGHLIGHTS<br>Heading: MORE<br><br>O que não estou conseguindo fazer é colocar, por exemplo, o "TABLE OF CONTENTS" dentro de uma variável. Ou seja, não estou entendo o funcionamento do shift...<br>



<br><br><br>Abraços,<span class="HOEnZb"><font color="#888888"><br>-- <br>--<br>Manoel Domingues Junior<br>"Coletar dados é o primeiro passo para a sabedoria, mas compartilhar dados é o primeiro passo para a comunidade."<br>

IBM - Prodigy Linux<br><br>
</font></span><br>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org">Rio-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/rio-pm" target="_blank">http://mail.pm.org/mailman/listinfo/rio-pm</a><br></blockquote></div><br></div>