[SP-pm] Retirar conteúdo de Tabela

Márcio Vitor cromo.jml at gmail.com
Sun Jan 18 18:29:22 PST 2009


Daniel, vou bicar feio mas acho que você tá querendo algo assim:

my $url = $tree_cidade->look_down(_tag => 'a')->attr('href');

Márcio Vitor

2009/1/18 Daniel de Oliveira Mantovani <daniel.oliveira.mantovani em gmail.com>

> Olá pessoal, o André me ensinou uma maneira muito divertida de retirar
> conteúdo com HTML::TreeBuilder.
>
> Ele ensinou a pegar os atributos com attr(), por exemplo pegar o <a href="
> http://pegar_isso_aqui.com"> usaria $a->attr('href').
>
> Desse jeito funciona perfeitamente:
> <code>
>   my @cidades = $tree_page->look_down(_tag => 'li');
>   foreach my $cidade (@cidades) {
>      my $html = $cidade->as_HTML;
>      my $tree_cidade = HTML::TreeBuilder->new_from_content($html);
>      $tree_cidade->look_down(_tag => 'a');
>      $tree_cidade->as_HTML =~ m{href="(.+?)"};
>      push(@estados,"$1/bairros") if $1 !~ m{cidade};
> </code>
>
> Porém do jeito que seria o correto não funciona:
>
> <code>
>   my @cidades = $tree_page->look_down(_tag => 'li');
>   foreach my $cidade (@cidades) {
>      my $html = $cidade->as_HTML;
>      my $tree_cidade = HTML::TreeBuilder->new_from_content($html);
>      $tree_cidade->look_down(_tag => 'a');
>      my $url = $tree_cidade->attr('href');
> *39 *push(@estados,"$url/bairros") if $url !~ m{cidade};
> </code>
>
> Da o seguinte erro:
> <erro>
> Use of uninitialized value $url in concatenation (.) or string at
> vcvai-0.01.pl line 39.
> </erro>
>
> Se eu tento dar um print "$url\n"; da o mesmo erro na linha do print.
>
> Tentei de várioas maneiras e nada!
>
> []'s
>
>
>
> 2008/11/28 Nelson Ferraz <nferraz em gmail.com>
>
> Muito boa explicacão, André.
>>
>> Que tal colocá-la no wiki, pra facilitar a nossa vida mais tarde?
>> (Para nós e para outras pessoas :))
>>
>> Sugiro colocá-lo na forma de uma Receita:
>>
>> ---
>>
>>    Título: Como fazer parsing de HTML
>>
>>    Problema: você precisa extrair informacões de um arquivo HTML
>>
>>    Solucão: use HTML::TreeBuilder
>>
>>    Discussão: (explicacão acima)
>>
>> ---
>>
>> Você pode usar este link para publicar uma nova receita:
>>
>> - http://www.perl.org.br/bin/viewauth/Artigos/WebReceitaForm
>>
>> []s
>>
>> Nelson
>>
>> --
>> Nelson Ferraz
>>
>> Free Software Foundation Associate Member #3203
>> Projeto Software Livre Brasil (www.softwarelivre.org.br)
>> Sociedade Perl do Brasil (www.perl.org.br)
>> Rede Livre de Compartilhamento de Cultura Digital
>> _______________________________________________
>> SaoPaulo-pm mailing list
>> SaoPaulo-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>>
>
>
>
> --
> http://mantovanihouse.blogspot.com/
>
> -------(\_------------_/)-----------
> -------)--(----------)--(-----------
> ------(----(---------)----)----------
> -------)----(-------)----(-----------
> -------(----(-------)----)-----------
> --------\_-(\\.---.//)-_/------------
> ----------\)' -8--8- '(/--------------
> -----------/------------\---------------
> ----------(--)--------(--)--------------
> ------------(_c__c_)----------------
> ----------------------------------------
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20090119/b46a207a/attachment.html>


More information about the SaoPaulo-pm mailing list