HTML zu TEXT mit Perl unter Debian

24/08/2010 - 15:04 von Uwe | Report spam
Liebe NG,

die Nacht war kurz, der Morgen früh und ich suche noch immer nach einer Lösung für folgendes Problem: Ich hole mir mit folgendem Skript ...

use strict;
use LWP::UserAgent;
use Encode;

my $agent = LWP::UserAgent->new;
my $contentA = $agent->get('http://www.meteocentrale.ch/?countr...ss&L=1');
my $contentB = $contentA->decoded_content;
$contentB =~ s//<br \/>/ig;
$contentB =~ s/.*<dl class="textelement">//ig;
$contentB =~ s/<\/dl>.*//ig;
$contentB =~ s/<br \/>//ig;
my $contentC = encode("iso-8859-1", $contentB);

print $contentB;

... den Inhalt einer Webseite und kürze Teil den ich nicht brauche weg. Soweit funktioniert das auch prima. Ich suche nun ein Modul das den Inhaltstext aus dem restlichen HTML-Code herausholt, folglich einen HTML-zu-Text-Konverter. Unter Windows mit Activeperl würde dazu das Modul "HTML::ExtractContent" zur Verfügung stehen. Das Skript soll aber unter Debian-Linux laufen und da gibt es dieses Modul nicht. Hat jemand eine Idee mit welchem Modul ich das unter Linux umsetzen kann. Eine manuelle Installation des Moduls möchte ich nicht vornehmen, das gibt Probleme mit dem Paketmanager von Debian.

Hier noch die Lösung die unter Windows mit Activeperl funktioniert ...
use strict;
use HTML::ExtractContent;
use LWP::UserAgent;
use Encode;

my $agent = LWP::UserAgent->new;
my $contentA = $agent->get('http://www.meteocentrale.ch/?countr...ss&L=1');
my $contentB = $contentA->decoded_content;
$contentB =~ s//<br \/>/ig;
$contentB =~ s/.*<dl class="textelement">//ig;
$contentB =~ s/<\/dl>.*//ig;
$contentB =~ s/<br \/>//ig;
my $contentC = encode("iso-8859-1", $contentB);

my $extractor = HTML::ExtractContent->new;
$extractor->extract($contentB);
my $result = $extractor->as_text;
print $result;

Vielen Dank und Grüße,
Uwe
 

Lesen sie die antworten

#1 Klaus
24/08/2010 - 19:23 | Warnen spam
Am 24.08.2010 15:04, schrieb Uwe:

Hier noch die Lösung die unter Windows mit Activeperl funktioniert ...
use HTML::ExtractContent;



ich habe hier das aktuelle Activeperl 5.10 und da gibt es das Module nicht!
Entweder hast Du eine andere Version, die das Module enthàlt, oder es wurde
doch zusàtzlich installiert?


Ich musste noch kein HTML parsen und kann daher keine eigene Empfehlung
geben, aber vielleicht ist das hier was?

http://wiki.perl-community.de/Wisse...HTMLParser


Grüße
Klaus

Ähnliche fragen