FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: tentaclejoe am 10 August 2021, 21:48:44

Titel: Website parsen
Beitrag von: tentaclejoe am 10 August 2021, 21:48:44
Hallo, ich mache meine ersten Gehversuche mit FHEM und vorallem Perl und muss eingestehen dass ich selbst, trotz googeln, nicht weiterkomme.

Ich möchte ein Script schreiben dass mit die Kalenderwoche und Feiertage von der Website https://kwheute.de (https://kwheute.de) ausliest und in einer Datenstruktur für weitere Verarbeitung speichert.
Das abrufen das HTML Quelltextes funktioniert soweit schon, nur das parsen nicht, Perl meckert hier "Global symbol "$td" requires explicit package name (did you forget to declare "my $td"?)" was ich nicht verstehe denn ich habe doch bei dem foreach ein "my" davor geschrieben.

Um zu verstehen was ich überhaupt vor habe: Auf der Website gibt es eine Tabelle in der die ganzen Kalenderwochen und Feiertage stehen und diese möchte ich aus den "td" HTML Elementen auslesen um mir die Daten später auf einem Display anzeigen zu lassen.

Mein Code bisher:

use strict;
use warnings;
use LWP::Simple;
use HTML::TreeBuilder;

my $html = get("https://kwheute.de");
my $tree = HTML::TreeBuilder->new;
$tree->parse($html)

# ab hier gehts nicht mehr
foreach my $td ($tree->find("td")) {
    print($td->as_text, "\n");
}


Sorry schonmal für die Noob Frage
Titel: Antw:Website parsen
Beitrag von: steffen83 am 10 August 2021, 22:05:30
Mit httpmod schon mal probiert? Oder wäre dir das zu aufwendig
Titel: Antw:Website parsen
Beitrag von: tentaclejoe am 10 August 2021, 22:10:24
Danke für den Tipp, ich werds mir mal anschauen  :)
Titel: Antw:Website parsen
Beitrag von: betateilchen am 10 August 2021, 23:32:48
Warum brauchst Du eine Webseite, um ein paar Datumsinformationen zu finden? Das kann perl doch selbst.
Und Feiertage gibt es in FHEM im holiday-Modul.
Titel: Antw:Website parsen
Beitrag von: Damian am 11 August 2021, 13:00:20
Hier ein Einzeiler für die Kalenderwoche:

defmod di_week DOIF init {[00:00];;set_State($week)}

Im Status von di_week steht immer die aktuelle Kalenderwoche.
Titel: Antw:Website parsen
Beitrag von: tentaclejoe am 11 August 2021, 16:47:00
Ok da hab ich wohl etwas zu kompliziert gedacht wenn Perl und FHEM dafür schon fertige Module haben, schonmal vielen Dank!