[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