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

topeg
 2010-04-14 16:56
#136028 #136028
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
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)

View full thread 3 Fragen: Trefferliste umstrukturieren, mit gefunden Links weiterarbeiten + wie kann ich nur Teile eines Treffers anzeigen?