[SP-pm] Retirar conteúdo de Tabela

Daniel de Oliveira Mantovani daniel.oliveira.mantovani at gmail.com
Sun Jan 18 09:51:26 PST 2009


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_)----------------
----------------------------------------
-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20090118/ad8db1bc/attachment-0001.html>


More information about the SaoPaulo-pm mailing list