Thread Web::Scraper - Elemente ohne bestimmtes Attribut finden (3 answers)
Opened by pktm at 2010-04-15 17:18

pktm
 2010-04-15 17:56
#136116 #136116
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ah, herrlich. Die not()-Variante funktioniert:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/Perl/bin/perl

use strict;
use warnings;
use FileHandle;
use Data::Dumper qw/Dumper/;
use Web::Scraper;

my $content = q~
<p class="x" style="right">text1</p>
<p class="x">text2</p>
~;

#p[@class='x' && not(@style)]
my $parser = scraper {
process '//p[@class="x" and not(@style)]', "items[]" => {
style => '@style',
text => 'TEXT',
};
};

my $result = $parser->scrape( $content );
print Dumper $result;


style='' ist leider bei mir nciht geeignet, da style nicht immer vorhanden ist. Es müsste als leer spezifiziert sein, damit das funktioniert:
Code: (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
#!/Perl/bin/perl

use strict;
use warnings;
use FileHandle;
use Data::Dumper qw/Dumper/;
use Web::Scraper;

my $content = q~
<p class="x" style="right">text1</p>
<p class="x" style="">text2</p>
~;

#p[@class='x' && not(@style)]
my $parser = scraper {
#process '//p[@class="x" and not(@style)]', "items[]" => {
process '//p[@class="x" and @style=""]', "items[]" => {
style => '@style',
text => 'TEXT',
};
};

my $result = $parser->scrape( $content );
print Dumper $result;


Besten Dank.
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread Web::Scraper - Elemente ohne bestimmtes Attribut finden