Thread HTML::TreeBuilder- durch HTML tags interieren
(5 answers)
Opened by iamlooking at 2015-02-17 09:14
Hallo zusammen,
ich versucher gerade mit HTML::TreeBuilder durch eine Webseite zu iterieren. Sprich, ich möchte alle HTML Tags von oben nach unten durchlaufen. Wenn sich ein Tag in Untertags wie z.B. <ul><li..</li></ul> verzweigt möchte ich erst der Verzweigung nach gehen und dann wieder beim nächsten Tag weiter machen. Bisher habe ich immer HTML::Parser verwendet. Ich dachte HTML::TreeBuilder ist da irgendiwe komfortabler, komme aber nicht weiter wie ich in den Verzweigungen weiter komme. Mein Testbody sieht so aus: Code: (dl
)
1 <body> Das zugehörige Perlskript so: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 my $Tree = HTML::TreeBuilder->new(); $Tree->parse_content($html); my @nodes = $Tree->elementify(); my @content = $nodes[0]->content_list(); foreach my $elem (@content) { $data->{$elem->tag()} = $elem; } foreach my $elem ($data->{'body'}->content_list()) { if (!$elem->is_empty)) { my @list = $elem->content_refs_list(), "\n"; my $tag = $elem->tag(); if (ref($list[0]) eq 'SCALAR') { $elem->as_text()); } else { #HIER MUESSTE ICH WEITER ABSTEIGEN KOENNEN, ODER? } } } $Tree->delete; Last edited: 2015-02-17 09:42:46 +0100 (CET) |