[Rio-pm] Mojolicious - Duvidas
Stanislaw Pusep
creaktive em gmail.com
Quinta Abril 12 12:35:20 PDT 2012
Manoel, você também pode usar o Web::Scraper (
https://metacpan.org/module/Web::Scraper), que faz o scraping e já carrega
os dados em uma estrutura hierárquica:
use Data::Printer;
use URI;
use Web::Scraper;
my $r = scraper {
process q(//head/title),
title => 'text';
process q(//h1|//h2|//h3),
q(heading[]) => 'text';
}->scrape(
URI->new(qw(http://mojolicio.us/perldoc))
);
p $r;
Resultado:
\ {
heading [
[0] "TABLE OF CONTENTS",
[1] "NAME",
[2] "DON'T PANIC!",
[3] "LEARNING PERL",
[4] "TUTORIAL",
[5] "GUIDES",
[6] "HIGHLIGHTS",
[7] "MORE"
],
title "Mojolicious::Guides - Mojolicious guide to the galaxy"
}
ABS()
On Thu, Apr 12, 2012 at 15:11, Manoel Domingues Junior <
manoel.domingues.junior em gmail.com> wrote:
> Olá pessoal,
>
> Estou tentando montar um crawller, mas estou empacado.
>
> 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.
>
> use Mojo::UserAgent;
>
> # Fetch web site
> my $ua = Mojo::UserAgent->new;
> my $tx = $ua->get('mojolicio.us/perldoc');
>
> # Extract title
> say 'Title: ', $tx->res->dom->at('head > title')->text;
>
> # Extract headings
> $tx->res->dom('h1, h2, h3')->each(sub {
> say 'Heading: ', shift->all_text;
> });
>
>
> Executando esse código (ele está na página do Mojolicious) teremos:
>
> Title: Mojolicious::Guides - Mojolicious guide to the galaxy
> Heading: TABLE OF CONTENTS
> Heading: NAME
> Heading: DON'T PANIC!
> Heading: LEARNING PERL
> Heading: TUTORIAL
> Heading: GUIDES
> Heading: HIGHLIGHTS
> Heading: MORE
>
> 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...
>
>
>
> Abraços,
> --
> --
> Manoel Domingues Junior
> "Coletar dados é o primeiro passo para a sabedoria, mas compartilhar dados
> é o primeiro passo para a comunidade."
> IBM - Prodigy Linux
>
>
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20120412/72032c9d/attachment.html>
Mais detalhes sobre a lista de discussão Rio-pm