Hallo Zusammen,
ich würde gerne Daten aus einer Webseite einlesen und dann im Webfrontend anzeigen, in einen Log schreiben und Plotten.
Ich habe mit dazu das Modul HTTMOD angeschaut, aber das funktioniert leider nicht mit der Webseite.
Es handelt sich um den Grundwasserstand von dieser Webseite: http://www.nid.bayern.de/grundwasser/stationen/diagramm/index.php?pgnr=16297&gknr=4&wert=grundwasser&thema=niedrigwasser&zw=
Ich möchte diese Werte einlesen:
Situation: niedrig
Grundwasserstand [m ü. NN]: 517,70
Grundwasserstand unter Gelände [m]: 2,26
Geländehöhe [m ü. NN]: 519,96
Letzter Messwert vom 07.07.14
Sieh dir mal Twilight an. Es besorgt sich die Wettervorhersage so wie du es dir wüscht
Twilight liefert Daten über das Grundwasser? Seit wann?
Nein aber in dem Modul kannst du lernen wie man es machen könnte
Also Twilight kalkuliert doch die "Helligkeit"?
Gut, es holt sich dazu auch Wetterdaten von Yahoo, aber über eine API.
Mit API ist das ja "einfach", aber ich will wirklich Daten aus einem HTML rauslesen, keine API, kein GET oder ähnliches verfügbar.
Was ich brauche, ist eine Art, nach bestimmten Parametern in einem HTML File zu suchen und dann entsprechend raus zu lesen.
In PHP gibt es da ein paar Möglichkeiten, aber mit Perl, keine Ahnung.
Hi,
Für sowas gibt's nen sehr einfachen Parser in weather.pm
Nach HTML-Tag suchen und den Text bis zum schließenden HTML-Tag rauslesen.
Vielleicht hilft Dir das ja als Anhaltspunkt, sonst müsstest Du hier mal den relevanten Absxhnitt des HTML posten, dann bekommst Du evtl Hilfe um die regexps zu formulieren.
Gruß Uli
@Mitch: Du kannst doch auch PHP benutzen und dann via system("php mein.php") aufrufen!?
Vielleicht hilft Dir das ja weiter: https://packages.debian.org/de/sid/libwww-perl (https://packages.debian.org/de/sid/libwww-perl)
Grüße Jörg
was funktioniert denn an HTTPMOD nicht ?
wenn es damit wirklich nicht geht kannst du auch einfach eine der routinen aus HttpUtils.pm verwenden. du kannst z.b. einfach mit GetHttpFile eine seite holen und dann beliebig mit perl weiter verarbeiten. etwas so:sub
getNiedschlag()
{
my $html = GetHttpFile("www.heidelberg-ziegelhausen-wetter.de", "/current.html");
my @lines = split( "\r\n", $html );
my @niederschlaege = grep /(\d+,\d+) l.m/, @lines;
my $niederschlag = 0.0;
if( $niederschlaege[1] =~ m/(\d+),(\d+) l.m/s ) {
$niederschlag = $1 + $2/10.0;
}
return $niederschlag;
}
gruss
andre
Danke euch für die Anregungen, werde ich mir am WE mal alles in Ruhe anschauen.
Bzgl. des Weather Modul verhält es sich genau wie bei Twilight, wird auf die Yahoo API zugegriffen, also funktioniert so nicht.
also ich kann mit HTML::Parser super HTML-Seiten durchparsen und Werte auslesen. Damit habe ich meinen Abfallkalender realisiert der mich nun kurz vor Müllentsorgung per Text2Speech dran erinnernt.