in reply to Re: HTML::Treebuilder look_down not working with <header>, <article> etc
in thread HTML::Treebuilder look_down not working with <header>, <article> etc

To clarify. I'm not the orginal poster but I got the same problem.
my $tree = HTML::TreeBuilder->new_from_content($webcrawler->content()) +; if (my $div = $tree->look_down(_tag => "article" )) { print $div->as_text(), "\n"; } else { print "Not found"; }
This piece of code gives a "Not found" on this article: http://www.sueddeutsche.de/politik/thailand-regierungschefin-yingluck-verliert-ihr-amt-1.1953299 although there is an article tag To test the code I changed it to grab a piece in the article tag itself:
if (my $div = $tree->look_down(_tag => "p" , class=>"article entry-sum +mary")) { print $div->as_text(), "\n"; } else { print "Not found"; }
It worked as expected and printed me "Das höchste Gericht in Thailand hat entschieden: Regierungschefin Yingluck Shinawatra ist des Verfassungsbruchs schuldig. Sie wurde sofort ihres Amtes enthoben. " So I can't seem to grab the article tag itself. Since article is an html5 tag this might be the problem but how can I solve this another way?

Replies are listed 'Best First'.
Re^3: HTML::Treebuilder look_down not working with <header>, <article> etc
by Anonymous Monk on May 07, 2014 at 12:45 UTC
    And you're not telling treebuilder to keep unknown tags because?
      Because I didn't know of this feature =). I'm just copying together scripts and twist them. I'm not a real programmer. For everyone who is struggeling with the same problem. Here is the piece of code.
      //new_from_file parse it instantly so i have to make a new my $tree = HTML::TreeBuilder->new(); //set ignore_unkown to false $tree->ignore_unknown(0); //than parse the content $tree->parse_content($webcrawler->content()); print CONTENT $tree; if (my $div = $tree->look_down(_tag => "article" , class=>"article hen +try")) { print $div->as_text(), "\n"; } else { print "Not found"; } $tree->delete();
      This gives me the expected result. Thanks ^_^ Didn't know there was a ignore_unknown which is by dafault true.