Thread 3 Fragen: Trefferliste umstrukturieren, mit gefunden Links weiterarbeiten + wie kann ich nur Teile eines Treffers anzeigen?
(47 answers)
Opened by vitopetre at 2010-04-11 23:27 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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 my $contents; outer:for my $h3 ($block->look_down(_tag => 'h3')) { # oder wie du den passenden "h3" Tag findest next if($h3->as_text() !~ /D-Lib Magazine/i); # Eine Ebene höner -> Ein Element weiter "p" my $p=$h3->parent()->content()->[$h3->pindex()+1]; if($p && ref($p) && $p->tag() eq 'p') { #################################### # suche nach Tag "a" my $ahref=$p->look_down(_tag=>'a'); if($ahref && $ahref->attr('href')) { $contents= $ahref->attr('href'); last; } #################################### # alternativ: for my $ahref ($p->content_list) { if($ahref && ref($ahref) && $ahref->tag() eq 'a' && $ahref->attr('href')) { $contents= $ahref->attr('href'); last outer; } } #################################### # alternativ2: (wenn man weiß wo das Element ist) my $ahref = $p->content()->[5] if($ahref && ref($ahref) && $ahref->attr('href')) { $contents= $ahref->attr('href'); last; } } } if($contents) { ... } EDIT: pq hat mich darauf gebracht. So geht es sicher auch: Code (perl): (dl
)
1 2 3 4 5 my $contents=$html->look_down(_tag=>'a',sub{$_[0]->as_text()=~/Table of Contents/i && $_[0]->attr('href')}); if($contents->attr('href')) { ... } Last edited: 2010-04-14 17:20:16 +0200 (CEST) |