[Thread Prev][Thread Next]   >Date Index >Thread Index

RE: LWP::Simple Verständnisfrage

marek.rouchal - Wed Dec 12 08:47:55 2007

Hallo allerseits,

ich empfehle, das HTML durch HTML::Parser zu jagen, und
dann dort gezielt nach <tt> tags suchen. Das ist vermutlich
wesentlich robuster als jede regexp.
Halt, es geht noch besser: HTML::TableExtract

Gruss,

Marek


-----Original Message-----
From: owner-perl-mongers@42.org [mailto:owner-perl-mongers@42.org] On Behalf Of Joerg Meltzer
Sent: Tuesday, December 11, 2007 9:26 PM
To: Stefan Bauer
Cc: perl-mongers@42.org
Subject: Re: LWP::Simple Verständnisfrage


Hallo Stefan,

Du verwendest unnötigerweise ein Zeilensplitting.
Ausserdem solltest du Minimum Matches .*? anstatt greedy .* verwenden.

#!/usr/bin/perl -w
use strict;
use LWP::Simple;
my $url = 'http://www.debian.org/security/2007/';

my @meldung;
my @ct = get($url) =~ m/<tt>\[(.*?)\]<\/tt> <strong><a
href=".\/(dsa-.*?)">/gms;

while ( @ct > 1) {
   eintrag_erstellen( shift(@ct), shift(@ct));
}
print @meldung;

sub eintrag_erstellen {
    my ( $datum, $link ) = @_;
    my $meldung = $link . ' vom ' . $datum . "\n";
    push( @meldung, $meldung );
}
__END__

Stefan Bauer schrieb:
> Hallo Liste,
>
> #!/usr/bin/perl -w
> use strict;
> use LWP::Simple;
> my $url = 'http://www.debian.org/security/2007/';
> my @meldung;
> my @webseite = get($url);
> foreach my $line (@webseite) {
> if ($line =~ m/<tt>\[(.*)\]<\/tt> <strong><a href=".\/(dsa-.*)">/) {
> eintrag_erstellen($1, $2);
> }
> }
> print @meldung;
>
> sub eintrag_erstellen {
> my ($datum, $link) = @_;
> my $meldung = $link . ' vom ' . $datum . "\n";
> push (@meldung, $meldung);
> }
>
>
> Leider enthällt @meldung nur genau einen Treffer, die regex sollte
> vielmehr in der $url finden. Was hab ich vergessen? *grübel* Ich seh
> gerade den Wald vor lauter Bäumen nicht.
>
> Gruß
>
>


--
Jörg Meltzer * joerg.meltzer@tngtech.com * +49-176-22664106
TNG Technology Consulting GmbH, Betastr. 13a, 85774 Unterföhring
Geschäftsführer: Henrik Klagges, Gerhard Müller, Christoph Stock
Amtsgericht München, HRB 135082


Next: