Aktualisierung von httpMod-Abfrage

Begonnen von Superposchi, 27 August 2024, 18:15:02

Vorheriges Thema - Nächstes Thema

Superposchi

Hallo, ich lese mit einem Device per httpMod eine Eishockeytabelle aus.

Das hat auch immer gut und gerne funktioniert - bis jetzt.
Zum Einen wird die Tabelle nicht aktualisiert.
Zum Anderen habe ich nach dem vorhandenen Schema noch zwei weitere 'Listenpunkte' (6+7) hinzugefügt.

Ein manuelles Einlesen per reread bringt leider auch nichts.

Da in ein paar Wochen die DEL-Saison wieder beginnt, würde ich die Tabelle gerne wieder ans laufen bringen.

Hier ein List des entsprechenden Device:
Internals:
   BUSY       0
   DEF        https://www.hockeyweb.de/del/tabelle-spielplan 86400
   FUUID      63fa6e1f-f33f-7706-d2b8-5a6af2677313b7ce
   FVERSION   98_HTTPMOD.pm:0.290460/2024-07-28
   Interval   86400
   MainURL    https://www.hockeyweb.de/del/tabelle-spielplan
   ModuleVersion 4.2.0 - 11.8.2023
   NAME       hockey_table
   NOTIFYDEV  global
   NR         166
   NTFY_ORDER 50-hockey_table
   STATE      Fischtown Pinguins
   TYPE       HTTPMOD
   eventCount 2
   value     
   CompiledRegexes:
   HTTPCookieHash:
     count;/:
       Name       count
       Options    path=/; domain=www.hockeyweb.de
       Path       /
       Value      8119
   HttpUtils:
     NAME       
     addr       https://www.hockeyweb.de:443
     auth       0
     code       200
     compress   1
     conn       
     data       
     displayurl https://www.hockeyweb.de/del/tabelle-spielplan
     header     Cookie: count=8118
     host       www.hockeyweb.de
     httpheader HTTP/1.1 200 OK
Date: Tue, 27 Aug 2024 16:06:55 GMT
Content-Type: text/html; charset=utf-8
Connection: close
Cache-Control: must-revalidate, proxy-revalidate, private, no-cache, max-age=0
Server-Timing:
Set-Cookie: count=8119; path=/; domain=www.hockeyweb.de
Access-Control-Allow-Origin: *
CF-Cache-Status: DYNAMIC
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=7aDpHDeq9DbtcybhdiR77wIc%2BFSpT4m9qtifQPEp9EXfTOQLmx1O%2FVGuFgwfirk7HQIMrJ61GWLCdP1xskc4PElYq0M%2FvnoCJmhxYXwkGiz0jfQOmmOOy847dWTVx898xWs%3D"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
CF-RAY: 8b9d4fc40caf35f3-FRA
Content-Encoding: gzip
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /del/tabelle-spielplan
     protocol   https
     redirects  0
     timeout    30
     url        https://www.hockeyweb.de/del/tabelle-spielplan
     sslargs:
   QUEUE:
   READINGS:
     2024-08-12 11:13:17   goals-1         162 : 116
     2024-08-12 11:13:17   goals-10        148 : 175
     2024-08-12 11:13:17   goals-11        135 : 156
     2024-08-12 11:13:17   goals-12        144 : 161
     2024-08-12 11:13:17   goals-13        125 : 183
     2024-08-12 11:13:17   goals-14        138 : 177
     2023-03-05 16:27:02   goals-15        125 : 225
     2024-08-12 11:13:17   goals-2         181 : 134
     2024-08-12 11:13:17   goals-3         167 : 130
     2024-08-12 11:13:17   goals-4         152 : 145
     2024-08-12 11:13:17   goals-5         156 : 134
     2024-08-12 11:13:17   goals-6         159 : 145
     2024-08-12 11:13:17   goals-7         147 : 149
     2024-08-12 11:13:17   goals-8         155 : 158
     2024-08-12 11:13:17   goals-9         132 : 138
     2024-08-12 11:13:17   goalsDiff-1     46
     2024-08-12 11:13:17   goalsDiff-10    -27
     2024-08-12 11:13:17   goalsDiff-11    -21
     2024-08-12 11:13:17   goalsDiff-12    -17
     2024-08-12 11:13:17   goalsDiff-13    -58
     2024-08-12 11:13:17   goalsDiff-14    -39
     2023-03-05 20:45:27   goalsDiff-15    -100
     2024-08-12 11:13:17   goalsDiff-2     47
     2024-08-12 11:13:17   goalsDiff-3     37
     2024-08-12 11:13:17   goalsDiff-4     7
     2024-08-12 11:13:17   goalsDiff-5     22
     2024-08-12 11:13:17   goalsDiff-6     14
     2024-08-12 11:13:17   goalsDiff-7     -2
     2024-08-12 11:13:17   goalsDiff-8     -3
     2024-08-12 11:13:17   goalsDiff-9     -6
     2024-08-12 11:13:17   matches-1       52
     2024-08-12 11:13:17   matches-10      52
     2024-08-12 11:13:17   matches-11      52
     2024-08-12 11:13:17   matches-12      52
     2024-08-12 11:13:17   matches-13      52
     2024-08-12 11:13:17   matches-14      52
     2023-03-05 16:27:02   matches-15      56
     2024-08-12 11:13:17   matches-2       52
     2024-08-12 11:13:17   matches-3       52
     2024-08-12 11:13:17   matches-4       52
     2024-08-12 11:13:17   matches-5       52
     2024-08-12 11:13:17   matches-6       52
     2024-08-12 11:13:17   matches-7       52
     2024-08-12 11:13:17   matches-8       52
     2024-08-12 11:13:17   matches-9       52
     2024-08-12 11:13:17   name-1          Fischtown Pinguins
     2024-08-12 11:13:17   name-10         Nürnberg Ice Tigers
     2024-08-12 11:13:17   name-11         Düsseldorfer EG
     2024-08-12 11:13:17   name-12         Löwen Frankfurt
     2024-08-12 11:13:17   name-13         Iserlohn Roosters
     2024-08-12 11:13:17   name-14         Augsburger Panther
     2023-02-26 19:08:38   name-15         Bietigheim Steelers
     2024-08-12 11:13:17   name-2          Eisbären Berlin
     2024-08-12 11:13:17   name-3          Straubing Tigers
     2024-08-12 11:13:17   name-4          Grizzlys Wolfsburg
     2024-08-12 11:13:17   name-5          EHC Red Bull München
     2024-08-12 11:13:17   name-6          Schwenninger Wild Wings
     2024-08-12 11:13:17   name-7          Adler Mannheim
     2024-08-12 11:13:17   name-8          Kölner Haie
     2024-08-12 11:13:17   name-9          ERC Ingolstadt
     2024-08-12 11:13:17   points-1        107
     2024-08-12 11:13:17   points-10       70
     2024-08-12 11:13:17   points-11       62
     2024-08-12 11:13:17   points-12       58
     2024-08-12 11:13:17   points-13       57
     2024-08-12 11:13:17   points-14       53
     2023-02-26 19:08:38   points-15       40
     2024-08-12 11:13:17   points-2        102
     2024-08-12 11:13:17   points-3        94
     2024-08-12 11:13:17   points-4        87
     2024-08-12 11:13:17   points-5        86
     2024-08-12 11:13:17   points-6        85
     2024-08-12 11:13:17   points-7        80
     2024-08-12 11:13:17   points-8        78
     2024-08-12 11:13:17   points-9        73
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://www.hockeyweb.de/del/tabelle-spielplan
Attributes:
   alias      DEL Tabelle
   enableControlSet 1
   group      Informationen
   icon       Wunderlist
   reading01Name name
   reading01RegOpt g
   reading01Regex \n    <td class="hw-table__team__name">(.*)<\/td>
   reading02Name matches
   reading02RegOpt g
   reading02Regex \n    <td class="hw-table__team__matches">(.*)<\/td>
   reading03Name points
   reading03RegOpt g
   reading03Regex \n    <td class="hw-table__team__points">(.*)<\/td>
   reading04Name goals
   reading04RegOpt g
   reading04Regex \n    <td class="hw-table__team__goals"><span>(.*)<\/span><\/td>
   reading05Name goalsDiff
   reading05RegOpt g
   reading05Regex \n    <td class="hw-table__team__goalsDiff">(.*)<\/td>
   reading06Name platz
   reading06RegOpt g
   reading06Regex \n <td class="hw-table__team__place">(.*)<\/td>
   reading07Name logo
   reading07RegOpt g
   reading07Regex \n <td class="hw-table__team__logo">(.*)<\/td>
   readingOExpr $val =~ s/<[\d\D]+>//;;$val
   room       Information->Hockey
   stateFormat name-1
   timeout    30
   userattr   .*

betateilchen

defmod del HTTPMOD https://www.hockeyweb.de/del/tabelle-spielplan
attr del reading01Name name
attr del reading01RegOpt g
attr del reading01Regex <td class="hw-table__team__name">(.*)<\/td>

Funktioniert einwandfrei.

setstate del 2024-08-27 18:36:52 name-1 Verein
setstate del 2024-08-27 18:36:52 name-10 Nürnberg Ice Tigers
setstate del 2024-08-27 18:36:52 name-11 Straubing Tigers
setstate del 2024-08-27 18:36:52 name-12 Schwenninger Wild Wings
setstate del 2024-08-27 18:36:52 name-13 EHC Red Bull München
setstate del 2024-08-27 18:36:52 name-14 Fischtown Pinguins
setstate del 2024-08-27 18:36:52 name-15 Löwen Frankfurt
setstate del 2024-08-27 18:36:52 name-2 Eisbären Berlin
setstate del 2024-08-27 18:36:52 name-3 Adler Mannheim
setstate del 2024-08-27 18:36:52 name-4 Augsburger Panther
setstate del 2024-08-27 18:36:52 name-5 Düsseldorfer EG
setstate del 2024-08-27 18:36:52 name-6 ERC Ingolstadt
setstate del 2024-08-27 18:36:52 name-7 Grizzlys Wolfsburg
setstate del 2024-08-27 18:36:52 name-8 Iserlohn Roosters
setstate del 2024-08-27 18:36:52 name-9 Kölner Haie
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Außerdem ist das keine Anfängerfrage.

Auch für HTTPMOD gibt es ein passendes Unterforum.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Superposchi

Dann sag mir doch bitte welches, mit einer Suche auf der Startseite nach httpMod kommt kein Ergebnis, also kein Link oder ähnliches zu einem Unterforum.

Was die Frage angeht, funktioniert es bei mir eben nicht. Das ist ja das Problem.
Eigentlich sollte es das. Und es hat ja auch über ein Jahr funktioniert.

Das einzige was mir einfällt ist mal ein komplett neues Device zu erstellen.

Allerdings enthält dein Ergebnis auch einen Fehler, name-01 sollte nicht Verein wiedergeben, sondern natürlich einen Vereinsnamen. Diese sind alle um jeweils einen Zähler versetzt.

betateilchen

#4
Zitat von: Superposchi am 27 August 2024, 19:15:55Dann sag mir doch bitte welches, mit einer Suche auf der Startseite nach httpMod kommt kein Ergebnis, also kein Link oder ähnliches zu einem Unterforum.

Diesen Thread

https://forum.fhem.de/index.php?topic=13092.0

verlinke ich Dir heute nicht zum ersten Mal. Er beantwortet die Frage "In welchem Unterforum sollte ich meine Fragen stellen". Gelesen scheinst Du den Thread bis heute aber noch nicht zu haben.



Zitat von: Superposchi am 27 August 2024, 19:15:55Allerdings enthält dein Ergebnis auch einen Fehler, name-01 sollte nicht Verein wiedergeben, sondern natürlich einen Vereinsnamen.

Das ist kein Fehler, mein Beitrag ist auch kein vollständiges device für alle gewünschten readings. Mir ging es nur darum, zu zeigen, dass eine Abfrage und eine einfache regex durchaus funktionieren.

Um das von Dir als "Fehler" bezeichnete Verhalten zu vermeiden,
muss man halt per Attribut noch eine preProcessRegex definieren,
dann erhält man als Ergebnis:

setstate del 2024-08-27 20:04:32 goals-1 0 : 0
setstate del 2024-08-27 20:04:32 goals-10 0 : 0
setstate del 2024-08-27 20:04:32 goals-11 0 : 0
setstate del 2024-08-27 20:04:32 goals-12 0 : 0
setstate del 2024-08-27 20:04:32 goals-13 0 : 0
setstate del 2024-08-27 20:04:32 goals-14 0 : 0
setstate del 2024-08-27 20:04:32 goals-2 0 : 0
setstate del 2024-08-27 20:04:32 goals-3 0 : 0
setstate del 2024-08-27 20:04:32 goals-4 0 : 0
setstate del 2024-08-27 20:04:32 goals-5 0 : 0
setstate del 2024-08-27 20:04:32 goals-6 0 : 0
setstate del 2024-08-27 20:04:32 goals-7 0 : 0
setstate del 2024-08-27 20:04:32 goals-8 0 : 0
setstate del 2024-08-27 20:04:32 goals-9 0 : 0
setstate del 2024-08-27 20:04:32 goalsDiff-1 0
setstate del 2024-08-27 20:04:32 goalsDiff-10 0
setstate del 2024-08-27 20:04:32 goalsDiff-11 0
setstate del 2024-08-27 20:04:32 goalsDiff-12 0
setstate del 2024-08-27 20:04:32 goalsDiff-13 0
setstate del 2024-08-27 20:04:32 goalsDiff-14 0
setstate del 2024-08-27 20:04:32 goalsDiff-2 0
setstate del 2024-08-27 20:04:32 goalsDiff-3 0
setstate del 2024-08-27 20:04:32 goalsDiff-4 0
setstate del 2024-08-27 20:04:32 goalsDiff-5 0
setstate del 2024-08-27 20:04:32 goalsDiff-6 0
setstate del 2024-08-27 20:04:32 goalsDiff-7 0
setstate del 2024-08-27 20:04:32 goalsDiff-8 0
setstate del 2024-08-27 20:04:32 goalsDiff-9 0
setstate del 2024-08-27 20:04:32 logo-1 <img src="https://appdb.hockeyweb.de/v2/teamLogos/logo_1_cell.png">
setstate del 2024-08-27 20:04:32 logo-10 <img src="https://appdb.hockeyweb.de/v2/teamLogos/logo_17_cell.png">
setstate del 2024-08-27 20:04:32 logo-11 <img src="https://appdb.hockeyweb.de/v2/teamLogos/logo_30_cell.png">
setstate del 2024-08-27 20:04:32 logo-12 <img src="https://appdb.hockeyweb.de/v2/teamLogos/logo_33_cell.png">
setstate del 2024-08-27 20:04:32 logo-13 <img src="https://appdb.hockeyweb.de/v2/teamLogos/logo_66_cell.png">
setstate del 2024-08-27 20:04:32 logo-14 <img src="https://appdb.hockeyweb.de/v2/teamLogos/logo_643_cell.png">
setstate del 2024-08-27 20:04:32 logo-2 <img src="https://appdb.hockeyweb.de/v2/teamLogos/logo_3_cell.png">
setstate del 2024-08-27 20:04:32 logo-3 <img src="https://appdb.hockeyweb.de/v2/teamLogos/logo_4_cell.png">
setstate del 2024-08-27 20:04:32 logo-4 <img src="https://appdb.hockeyweb.de/v2/teamLogos/logo_5_cell.png">
setstate del 2024-08-27 20:04:32 logo-5 <img src="https://appdb.hockeyweb.de/v2/teamLogos/logo_6_cell.png">
setstate del 2024-08-27 20:04:32 logo-6 <img src="https://appdb.hockeyweb.de/v2/teamLogos/logo_9_cell.png">
setstate del 2024-08-27 20:04:32 logo-7 <img src="https://appdb.hockeyweb.de/v2/teamLogos/logo_12_cell.png">
setstate del 2024-08-27 20:04:32 logo-8 <img src="https://appdb.hockeyweb.de/v2/teamLogos/logo_15_cell.png">
setstate del 2024-08-27 20:04:32 logo-9 <img src="https://appdb.hockeyweb.de/v2/teamLogos/logo_16_cell.png">
setstate del 2024-08-27 20:04:32 matches-1 0
setstate del 2024-08-27 20:04:32 matches-10 0
setstate del 2024-08-27 20:04:32 matches-11 0
setstate del 2024-08-27 20:04:32 matches-12 0
setstate del 2024-08-27 20:04:32 matches-13 0
setstate del 2024-08-27 20:04:32 matches-14 0
setstate del 2024-08-27 20:04:32 matches-2 0
setstate del 2024-08-27 20:04:32 matches-3 0
setstate del 2024-08-27 20:04:32 matches-4 0
setstate del 2024-08-27 20:04:32 matches-5 0
setstate del 2024-08-27 20:04:32 matches-6 0
setstate del 2024-08-27 20:04:32 matches-7 0
setstate del 2024-08-27 20:04:32 matches-8 0
setstate del 2024-08-27 20:04:32 matches-9 0
setstate del 2024-08-27 20:04:32 name-1 Eisbären Berlin
setstate del 2024-08-27 20:04:32 name-10 Straubing Tigers
setstate del 2024-08-27 20:04:32 name-11 Schwenninger Wild Wings
setstate del 2024-08-27 20:04:32 name-12 EHC Red Bull München
setstate del 2024-08-27 20:04:32 name-13 Fischtown Pinguins
setstate del 2024-08-27 20:04:32 name-14 Löwen Frankfurt
setstate del 2024-08-27 20:04:32 name-2 Adler Mannheim
setstate del 2024-08-27 20:04:32 name-3 Augsburger Panther
setstate del 2024-08-27 20:04:32 name-4 Düsseldorfer EG
setstate del 2024-08-27 20:04:32 name-5 ERC Ingolstadt
setstate del 2024-08-27 20:04:32 name-6 Grizzlys Wolfsburg
setstate del 2024-08-27 20:04:32 name-7 Iserlohn Roosters
setstate del 2024-08-27 20:04:32 name-8 Kölner Haie
setstate del 2024-08-27 20:04:32 name-9 Nürnberg Ice Tigers
setstate del 2024-08-27 20:04:32 place-1 1
setstate del 2024-08-27 20:04:32 place-10 10
setstate del 2024-08-27 20:04:32 place-11 11
setstate del 2024-08-27 20:04:32 place-12 12
setstate del 2024-08-27 20:04:32 place-13 13
setstate del 2024-08-27 20:04:32 place-14 14
setstate del 2024-08-27 20:04:32 place-2 2
setstate del 2024-08-27 20:04:32 place-3 3
setstate del 2024-08-27 20:04:32 place-4 4
setstate del 2024-08-27 20:04:32 place-5 5
setstate del 2024-08-27 20:04:32 place-6 6
setstate del 2024-08-27 20:04:32 place-7 7
setstate del 2024-08-27 20:04:32 place-8 8
setstate del 2024-08-27 20:04:32 place-9 9
setstate del 2024-08-27 20:04:32 points-1 0
setstate del 2024-08-27 20:04:32 points-10 0
setstate del 2024-08-27 20:04:32 points-11 0
setstate del 2024-08-27 20:04:32 points-12 0
setstate del 2024-08-27 20:04:32 points-13 0
setstate del 2024-08-27 20:04:32 points-14 0
setstate del 2024-08-27 20:04:32 points-2 0
setstate del 2024-08-27 20:04:32 points-3 0
setstate del 2024-08-27 20:04:32 points-4 0
setstate del 2024-08-27 20:04:32 points-5 0
setstate del 2024-08-27 20:04:32 points-6 0
setstate del 2024-08-27 20:04:32 points-7 0
setstate del 2024-08-27 20:04:32 points-8 0
setstate del 2024-08-27 20:04:32 points-9 0

Dass das Ganze bei Dir nicht funktioniert, ist ein anderes Problem. Meine Vermutung geht dahin, dass einfach Deine regex falsch sind und vielleicht jetzt nicht mehr passen wie früher.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

#5
Grundsätzlich würde ich die Auswertung einer so simplen Tabelle auf einer Webseite übrigens nie per HTTPMOD machen, sondern ein paar Zeilen code in die 99_myUtils schreiben. Für das Extrahieren von html Tabellen gibt es hervorragende Tools in perl.

use HTML::TableExtract;
sub eis {
  my @n = qw(xplatz xname xspiele xpunkte xdiff xtore);
  my $html = GetFileFromURL("https://www.hockeyweb.de/del/tabelle-spielplan");
  my $extract = HTML::TableExtract->new( headers => [qw(Pl. Verein Spiele Pt. Diff. Tore)] );
  $extract->parse($html);
  my $i = 0;
  foreach my $row ($extract->rows) {
    $i++;
    for (my $c=0;$c<=5;$c++) {
      CommandSetReading(undef,"del $n[$c]".sprintf("-%02d",$i)." @$row[$c]");
    }
  } 
}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Superposchi

Ich gebe zu ich beschäftige mich nicht dauerhaft damit, aber soweit ich das gesehen habe stimmt die regex.

Zeigt sich auch daran, das in meinem List die regex für die letzten veiden Punkte von der Syntex identisch zu den anderen sind.
Frage: ist der Code in deinem Beispiel eine Kopie aus meinem List oder ein 'neu' geschriebener Code?
Frage bezüglich der Fehlersuche. Bei einer Kopie kann es ja nicht an einer falschen regex liegen.

Was die Auslesemethode angeht kann man sicher über die myutils nachdenken. Allerdings gibt es im zweiten Schritt eine andere Unterseite für die Play-Offs, die leider nicht als Tabelle angezeigt werden da mit dem KO-System ein anderer Spielrhytmus existiert.
Der einfachheit halber würde ich beide Seiten gerne gleichbehandeln.

betateilchen

Zitat von: Superposchi am 27 August 2024, 21:27:14Zeigt sich auch daran, das in meinem List die regex für die letzten veiden Punkte von der Syntex identisch zu den anderen sind.

Wenn aber die Quelle schon falsch ist, kann natürlich auch die Kopie für die letzten beiden regex nicht funktionieren. Wie kommst Du denn auf die regex, die Du da reingewurschtelt hast?

Zitat von: Superposchi am 27 August 2024, 21:27:14Frage: ist der Code in deinem Beispiel eine Kopie aus meinem List oder ein 'neu' geschriebener Code?

Das Einzige, was ich nicht aus Deinem list übernommen habe, war die eigentliche regex.
Dass die regex eine andere ist als in Deinem ursprünglichen code, ist ja nicht zu übersehen.
Die regex habe ich selbst erstellt, dann weiß ich nämlich, dass sie funktioniert.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: betateilchen am 27 August 2024, 18:40:48Außerdem ist das keine Anfängerfrage.

Auch für HTTPMOD gibt es ein passendes Unterforum.

Den Button zum Verschieben des Threads in den richtigen Bereich findest Du übrigens unten links auf der Seite.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Superposchi

ZitatWie kommst Du denn auf die regex, die Du da reingewurschtelt hast?
Ich habe die bestehenden regex mit dem Quellcode der Webseite verglichen und auf die beiden auszulesenden Felder geändert.

ZitatDass die regex eine andere ist als in Deinem ursprünglichen code, ist ja nicht zu übersehen
Ich habe die beiden regex nicht miteinander verglichen. Ist am Handy alles etwas schwierig. Werde ich morgen am PC mal genau vergleichen und ggf. rumtesten.

Superposchi

Also die eigentliche Regex ist identisch, lediglich der Zeilenumbruch am Anfang fehlt bei dir.
Wenn ich den Weglasse, werden Daten gelesen.
Bei meinen beiden neu hinzugefügten Feldern funktioniert nur eins. Das für das Logo wird zwar erstellt, liefert aber keine Werte, was aber vermutlich daran liegt, dass es sich ja hier um eine url zu einem Bild handelt.
<td class="hw-table__team__logo">(.*)<\/td>
Das mit dem preprocessRegex verstehe ich nicht. Leider existiert keine deutsche Übersetzung und das Englische ergibt für mich keinen Sinn, da ich ja mehrere Begriffe ersetzen müsste. Schließlich ist ja in jedem Reading der erste Wert die Überschrift. Interessant auch, dass voriges Jahr das Device mit dem Zeilenumbruch in der Regex genau das verhindert hatte, also die Überschriften als ersten Wert zurückzugeben.
s/match/replacement/gverstehe ich so, dass match der Begriff ist der ersetzt werden soll und replacement der Begriff der dafür als Ersatz eingefügt wird. Das /s und /g Kommandos sind.
Aber wie gesagt ist mir unklar wie man damit mehrere Begriffe ersetzen lassen kann. Zumal er dann ja die Überschrift "Verein" durch einen Leerwert ersetzt aber nicht den zweiten Wert statt dem ersten ausgibt.

passibe

Preprocess, z.B., um alles im <thead>-Tag rauszufiltern (also den Tabellenkopf):
s/<thead>.*<\/thead>//gmsDu löscht damit im Prinzip den gesamten Tabellenkopf, sodass, wenn HTTPMOD die weiteren regexes anwendet, gar nichts mehr da ist, was fälschlicherweise gematched werden könnte.

Für die Bild-URL:
<td class="hw-table__team__logo"><img src=\"(.*)\"><\/td>Wie du das Bild dann abrufst/darstellst, ist nochmal eine andere Frage, aber ich gehe mal davon aus, dass du auch die sonstigen Readings irgendwo weiterprozessierst. Dort könntest du dann auch die URL zum jeweiligen Logo hinterlegen.

Ansonsten: Seiten wie regex101.com helfen ungemein. In diesem Fall einfach den relevanten Teil des Quellcodes der Website kopieren und dann die jeweiligen regexes testen.
Je nach dem ist auch ChatGPT gar nicht so übel, was regex angeht (am besten aber dann immer nochmal mit regex101 überprüfen).

Superposchi

s/<thead>.*<\/thead>//gmsok, so weit habe ich natürlich nicht gedacht. in der CommandRef steht als Beispiel nur ein String, leider nicht, dass man auch komplette Tags einsetzen kann.

Gibt es für das Kommando am Ende eine Liste zum nachschlagen? In der CommandRef und anderen Beispielen steht immer nur das "g". Wofür sind "m" und "s"?

Leider wird mir das aber auch nicht weiterhelfen, da ich gesehen habe, dass einige Readings einen Tabellenkopf ausgeben und andere nicht.

Das mit dem Bild habe ich bereits selbst herausbekommen, dennoch danke für den Ansatz. Hatte mit rumprobieren getestet nur den url-Text statt den ganzen Tag auszulesen.

passibe

Das ist eine Regex, du kannst reinschreiben und ersetzen lassen, was du willst. Ein Tag ist auch nur ein String, halt mit "Sonderzeichen" (also < und > drin), aber immer noch ein String (="Text").

Lies dich doch mal allgemein über Regex ein (Google, ChatGPT) und probiere ein bisschen rum, auch mit regex101.com. Dort werden z.B. auch die flags (das "g" am Ende, usw.) erklärt.

Dass einige Spalten einen Tabellenkopf haben oder nicht, ist egal. Wenn du dir den Quellcode anschaust, siehst du, dass der Kopf en bloc spezifiziert wird, sodass das gesamte Filtern des thead-Tags ausreicht. Und selbst wenn es mehrere thead-Tags gäbe, würden die ja auch alle gefiltert.

Prof. Dr. Peter Henning

Zitat von: Superposchi am 28 August 2024, 23:36:24Gibt es für das Kommando am Ende eine Liste zum nachschlagen? In der CommandRef und anderen Beispielen steht immer nur das "g". Wofür sind "m" und "s"?
Es gibt eine sehr schöne und bunte Anleitung "Regex for Dummies"
https://gist.github.com/cat-lin-morgan/49bd128340e9e452f837b4fae76df091

pah

betateilchen

Für den vorliegenden Anwendungsfall braucht man weder das Flag "g" noch das Flag "m".
Die Flags werden übrigens auch auf rege101.com erklärt - genau wie alle anderen "Bauteile" einer regexp.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Superposchi

#16
Ok, das mit dem preProcessRegex ist mir jetzt klar.
Leider ist weder mein englisch noch mein Verständnis gut genug um die Anleitung bzw. die Webseite Regex101.com zu verstehen. Komme damit nicht zurecht. Ich bin nun mal der Typ, der eher am praktischeb Beispiel lernt.
Darum würde ich gerne noch mal ein zweites Beispiel von der Play-Off-Webseite angehen.

Bei 3 Regex hat es funktioniert wie ich es gedacht habe, ein vierter Regex liefert aber erst gar keine Readings zurück.

Auszug aus dem Quelltext:
<div class="hw-appdb__playoff__round">
    <h3 class="hw-appdb__playoff__round__title">Pre-PlayOffs</h3>
    <div class="flex">
        <div class="hw-appdb__playoff__round__serie row">
            <div class="col-lg-6">
                <div class="hw-appdb__playoff__round__serie__team">
                    <img height="66" src="https://appdb.hockeyweb.de/v2/teamLogos/logo_3_cell@2x.png">
                    <span class="hw-appdb__playoff__round__serie__team__name">Adler Mannheim</span>
                </div>
                <div class="hw-appdb__playoff__round__serie__team__standing">2 </div>
            </div>
            <div class="col-lg-6">
                <div class="hw-appdb__playoff__round__serie__team">
                    <img height="66" src="https://appdb.hockeyweb.de/v2/teamLogos/logo_16_cell@2x.png">
                    <span class="hw-appdb__playoff__round__serie__team__name">Nürnberg Ice Tigers</span>
                </div>
                <div class="hw-appdb__playoff__round__serie__team__standing">0 </div>
            </div>
            <p class="hw-appdb__playoff__round__serie__info">10., 12., 14. März</p>
        </div>
        <div class="hw-appdb__playoff__round__serie row">
            <div class="col-lg-6">
                <div class="hw-appdb__playoff__round__serie__team">
                    <img height="66" src="https://appdb.hockeyweb.de/v2/teamLogos/logo_15_cell@2x.png">
                    <span class="hw-appdb__playoff__round__serie__team__name">Kölner Haie</span>
                </div>
                <div class="hw-appdb__playoff__round__serie__team__standing">1 </div>
            </div>
            <div class="col-lg-6">
                <div class="hw-appdb__playoff__round__serie__team">
                    <img height="66" src="https://appdb.hockeyweb.de/v2/teamLogos/logo_6_cell@2x.png">
                    <span class="hw-appdb__playoff__round__serie__team__name">ERC Ingolstadt</span>
                </div>
                <div class="hw-appdb__playoff__round__serie__team__standing">2 </div>
            </div>
            <p class="hw-appdb__playoff__round__serie__info">10., 13., 14. März</p>
        </div>
    </div>
</div>

<div class="hw-appdb__playoff__round">
    <h3 class="hw-appdb__playoff__round__title">Viertelfinale</h3>
    <div class="flex">
        <div class="hw-appdb__playoff__round__serie row">
            <div class="col-lg-6">
                <div class="hw-appdb__playoff__round__serie__team">
                    <img height="66" src="https://appdb.hockeyweb.de/v2/teamLogos/logo_66_cell@2x.png">
                    <span class="hw-appdb__playoff__round__serie__team__name">Fischtown Pinguins</span>
                </div>
                <div class="hw-appdb__playoff__round__serie__team__standing">4 </div>
            </div>
            <div class="col-lg-6">
                <div class="hw-appdb__playoff__round__serie__team">
                    <img height="66" src="https://appdb.hockeyweb.de/v2/teamLogos/logo_6_cell@2x.png">
                    <span class="hw-appdb__playoff__round__serie__team__name">ERC Ingolstadt</span>
                </div>
                <div class="hw-appdb__playoff__round__serie__team__standing">0 </div>
            </div>
            <p class="hw-appdb__playoff__round__serie__info">16./17., 19./20., 22., 24., 26., 28., 30. März</p>
        </div>
        <div class="hw-appdb__playoff__round__serie row">
            <div class="col-lg-6">
                <div class="hw-appdb__playoff__round__serie__team">
                    <img height="66" src="https://appdb.hockeyweb.de/v2/teamLogos/logo_1_cell@2x.png">
                    <span class="hw-appdb__playoff__round__serie__team__name">Eisbären Berlin</span>
                </div>
                <div class="hw-appdb__playoff__round__serie__team__standing">4 </div>
            </div>
            <div class="col-lg-6">
                <div class="hw-appdb__playoff__round__serie__team">
                    <img height="66" src="https://appdb.hockeyweb.de/v2/teamLogos/logo_3_cell@2x.png">
                    <span class="hw-appdb__playoff__round__serie__team__name">Adler Mannheim</span>
                </div>
                <div class="hw-appdb__playoff__round__serie__team__standing">1 </div>
            </div>
            <p class="hw-appdb__playoff__round__serie__info">16./17., 19./20., 22., 24., 26., 28., 30. März</p>
        </div>
        <div class="hw-appdb__playoff__round__serie row">
            <div class="col-lg-6">
                <div class="hw-appdb__playoff__round__serie__team">
                    <img height="66" src="https://appdb.hockeyweb.de/v2/teamLogos/logo_17_cell@2x.png">
                    <span class="hw-appdb__playoff__round__serie__team__name">Straubing Tigers</span>
                </div>
                <div class="hw-appdb__playoff__round__serie__team__standing">4 </div>
            </div>
            <div class="col-lg-6">
                <div class="hw-appdb__playoff__round__serie__team">
                    <img height="66" src="https://appdb.hockeyweb.de/v2/teamLogos/logo_30_cell@2x.png">
                    <span class="hw-appdb__playoff__round__serie__team__name">Schwenninger Wild Wings</span>
                </div>
                <div class="hw-appdb__playoff__round__serie__team__standing">3 </div>
            </div>
            <p class="hw-appdb__playoff__round__serie__info">16./17., 19./20., 22., 24., 26., 28., 30. März</p>
        </div>
        <div class="hw-appdb__playoff__round__serie row">
            <div class="col-lg-6">
                <div class="hw-appdb__playoff__round__serie__team">
                    <img height="66" src="https://appdb.hockeyweb.de/v2/teamLogos/logo_9_cell@2x.png">
                    <span class="hw-appdb__playoff__round__serie__team__name">Grizzlys Wolfsburg</span>
                </div>
                <div class="hw-appdb__playoff__round__serie__team__standing">0 </div>
            </div>
            <div class="col-lg-6">
                <div class="hw-appdb__playoff__round__serie__team">
                    <img height="66" src="https://appdb.hockeyweb.de/v2/teamLogos/logo_33_cell@2x.png">
                    <span class="hw-appdb__playoff__round__serie__team__name">EHC Red Bull München</span>
                </div>
                <div class="hw-appdb__playoff__round__serie__team__standing">4 </div>
            </div>
            <p class="hw-appdb__playoff__round__serie__info">16./17., 19./20., 22., 24., 26., 28., 30. März</p>
        </div>
    </div>
</div>

Der Vereinname, das Logo und die Spieltermine werden erzeugt, doch die Ergebnisse nicht.
Mein Regex-Versuch dazu:
<div class="hw-appdb__playoff__round__serie__team__standing">(.*)<\/div>Nach meinem Verständnis müsste damit alles zwischen "<div class="hw-appdb__playoff__round__serie__team__standing">" und dem schließenden "</div>" ausgelesen werden. Aber wie gesagt wird nicht einmal ein Reading erzeugt, geschweige denn Werte ausgelesen.

Die anderen Regex
<span class="hw-appdb__playoff__round__serie__team__name">(.*)<\/span>
<div class="hw-appdb__playoff__round__serie__team"><img height="66" src="(.*)"><\/div>
<p class="hw-appdb__playoff__round__serie__info">(.*)<\/p>
funktionieren. Das Schema dabei ist gleich dem Schema des nicht funktioneren Regex. Habe auch schon probiert den vorhergehenden Tag "<div class="col-lg-6">" mit einzuschließen, bringt aber auch nichts.

Die Regex geben zwar alle Vereine, egal welche Playoff-Runde, aus. Doch das habe ich im FTUI-Code geregelt.

Das list des kompletten Device sieht so aus:
Internals:
   BUSY       0
   CFGFN     
   DEF        https://www.hockeyweb.de/del/playoffs 86400
   FUUID      66cf7fe7-f33f-7706-7aa6-c94072d116681b44
   Interval   86400
   MainURL    https://www.hockeyweb.de/del/playoffs
   ModuleVersion 4.2.0 - 11.8.2023
   NAME       hockey_playoff
   NOTIFYDEV  global
   NR         224070
   NTFY_ORDER 50-hockey_playoff
   STATE      Eisbären Berlin
   TYPE       HTTPMOD
   eventCount 37
   value     
   CompiledRegexes:
   HTTPCookieHash:
     count;/:
       Name       count
       Options    path=/; domain=www.hockeyweb.de
       Path       /
       Value      19
   HttpUtils:
     NAME       
     addr       https://www.hockeyweb.de:443
     auth       0
     code       200
     compress   1
     conn       
     data       
     displayurl https://www.hockeyweb.de/del/playoffs
     header     Cookie: count=18
     host       www.hockeyweb.de
     httpheader HTTP/1.1 200 OK
Date: Fri, 30 Aug 2024 15:25:45 GMT
Content-Type: text/html; charset=utf-8
Connection: close
Cache-Control: must-revalidate, proxy-revalidate, private, no-cache, max-age=0
Server-Timing:
Set-Cookie: count=19; path=/; domain=www.hockeyweb.de
Access-Control-Allow-Origin: *
CF-Cache-Status: DYNAMIC
Report-To: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v4?s=Oa%2FN1ZO9K%2BiE01xFCunb%2FGrOyIQ9AgJJMyUGV9JWblfVSvzGOkw0GeKdKECLy3Lk7p0zXBd2BCpbaxmar6RaQ8hnDc66Ocfx79qeaGHQvmCEKLk2V3KjzBDn8luZUjxGIwo%3D"}],"group":"cf-nel","max_age":604800}
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
CF-RAY: 8bb5cb929be29b67-FRA
Content-Encoding: gzip
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /del/playoffs
     protocol   https
     redirects  0
     timeout    30
     url        https://www.hockeyweb.de/del/playoffs
     sslargs:
   QUEUE:
   READINGS:
     2024-08-28 22:17:14   logo-1          https://appdb.hockeyweb.de/v2/teamLogos/logo_3_cell@2x.png
     2024-08-28 22:17:14   logo-10         https://appdb.hockeyweb.de/v2/teamLogos/logo_30_cell@2x.png
     2024-08-28 22:17:14   logo-11         https://appdb.hockeyweb.de/v2/teamLogos/logo_9_cell@2x.png
     2024-08-28 22:17:14   logo-12         https://appdb.hockeyweb.de/v2/teamLogos/logo_33_cell@2x.png
     2024-08-28 22:17:14   logo-13         https://appdb.hockeyweb.de/v2/teamLogos/logo_66_cell@2x.png
     2024-08-28 22:17:14   logo-14         https://appdb.hockeyweb.de/v2/teamLogos/logo_33_cell@2x.png
     2024-08-28 22:17:14   logo-15         https://appdb.hockeyweb.de/v2/teamLogos/logo_1_cell@2x.png
     2024-08-28 22:17:14   logo-16         https://appdb.hockeyweb.de/v2/teamLogos/logo_17_cell@2x.png
     2024-08-28 22:17:14   logo-17         https://appdb.hockeyweb.de/v2/teamLogos/logo_66_cell@2x.png
     2024-08-28 22:17:14   logo-18         https://appdb.hockeyweb.de/v2/teamLogos/logo_1_cell@2x.png
     2024-08-28 22:17:14   logo-2          https://appdb.hockeyweb.de/v2/teamLogos/logo_16_cell@2x.png
     2024-08-28 22:17:14   logo-3          https://appdb.hockeyweb.de/v2/teamLogos/logo_15_cell@2x.png
     2024-08-28 22:17:14   logo-4          https://appdb.hockeyweb.de/v2/teamLogos/logo_6_cell@2x.png
     2024-08-28 22:17:14   logo-5          https://appdb.hockeyweb.de/v2/teamLogos/logo_66_cell@2x.png
     2024-08-28 22:17:14   logo-6          https://appdb.hockeyweb.de/v2/teamLogos/logo_6_cell@2x.png
     2024-08-28 22:17:14   logo-7          https://appdb.hockeyweb.de/v2/teamLogos/logo_1_cell@2x.png
     2024-08-28 22:17:14   logo-8          https://appdb.hockeyweb.de/v2/teamLogos/logo_3_cell@2x.png
     2024-08-28 22:17:14   logo-9          https://appdb.hockeyweb.de/v2/teamLogos/logo_17_cell@2x.png
     2024-08-30 17:25:44   name-1          Adler Mannheim
     2024-08-30 17:25:44   name-10         Schwenninger Wild Wings
     2024-08-30 17:25:44   name-11         Grizzlys Wolfsburg
     2024-08-30 17:25:44   name-12         EHC Red Bull München
     2024-08-30 17:25:44   name-13         Fischtown Pinguins
     2024-08-30 17:25:44   name-14         EHC Red Bull München
     2024-08-30 17:25:44   name-15         Eisbären Berlin
     2024-08-30 17:25:44   name-16         Straubing Tigers
     2024-08-30 17:25:44   name-17         Fischtown Pinguins
     2024-08-30 17:25:44   name-18         Eisbären Berlin
     2024-08-30 17:25:44   name-2          Nürnberg Ice Tigers
     2024-08-30 17:25:44   name-3          Kölner Haie
     2024-08-30 17:25:44   name-4          ERC Ingolstadt
     2024-08-30 17:25:44   name-5          Fischtown Pinguins
     2024-08-30 17:25:44   name-6          ERC Ingolstadt
     2024-08-30 17:25:44   name-7          Eisbären Berlin
     2024-08-30 17:25:44   name-8          Adler Mannheim
     2024-08-30 17:25:44   name-9          Straubing Tigers
     2024-08-30 17:25:44   termine-1       10., 12., 14. März
     2024-08-30 17:25:44   termine-2       10., 13., 14. März
     2024-08-30 17:25:44   termine-3       16./17., 19./20., 22., 24., 26., 28., 30. März
     2024-08-30 17:25:44   termine-4       16./17., 19./20., 22., 24., 26., 28., 30. März
     2024-08-30 17:25:44   termine-5       16./17., 19./20., 22., 24., 26., 28., 30. März
     2024-08-30 17:25:44   termine-6       16./17., 19./20., 22., 24., 26., 28., 30. März
     2024-08-30 17:25:44   termine-7       01., 03., 05., 07., 09./10., 11./12., 13./14. April
     2024-08-30 17:25:44   termine-8       01., 03., 05., 07., 09./10., 11./12., 13./14. April
     2024-08-30 17:25:44   termine-9       17., 19., 21., 23., 26., 28., 30. April
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://www.hockeyweb.de/del/playoffs
   defptr:
     readingBase:
       logo-1     reading
       logo-10    reading
       logo-11    reading
       logo-12    reading
       logo-13    reading
       logo-14    reading
       logo-15    reading
       logo-16    reading
       logo-17    reading
       logo-18    reading
       logo-2     reading
       logo-3     reading
       logo-4     reading
       logo-5     reading
       logo-6     reading
       logo-7     reading
       logo-8     reading
       logo-9     reading
       name-1     reading
       name-10    reading
       name-11    reading
       name-12    reading
       name-13    reading
       name-14    reading
       name-15    reading
       name-16    reading
       name-17    reading
       name-18    reading
       name-2     reading
       name-3     reading
       name-4     reading
       name-5     reading
       name-6     reading
       name-7     reading
       name-8     reading
       name-9     reading
       termine-1  reading
       termine-2  reading
       termine-3  reading
       termine-4  reading
       termine-5  reading
       termine-6  reading
       termine-7  reading
       termine-8  reading
       termine-9  reading
     readingNum:
       logo-1     02
       logo-10    02
       logo-11    02
       logo-12    02
       logo-13    02
       logo-14    02
       logo-15    02
       logo-16    02
       logo-17    02
       logo-18    02
       logo-2     02
       logo-3     02
       logo-4     02
       logo-5     02
       logo-6     02
       logo-7     02
       logo-8     02
       logo-9     02
       name-1     01
       name-10    01
       name-11    01
       name-12    01
       name-13    01
       name-14    01
       name-15    01
       name-16    01
       name-17    01
       name-18    01
       name-2     01
       name-3     01
       name-4     01
       name-5     01
       name-6     01
       name-7     01
       name-8     01
       name-9     01
       termine-1  04
       termine-2  04
       termine-3  04
       termine-4  04
       termine-5  04
       termine-6  04
       termine-7  04
       termine-8  04
       termine-9  04
     readingOutdated:
     readingSubNum:
       logo-1     -1
       logo-10    -10
       logo-11    -11
       logo-12    -12
       logo-13    -13
       logo-14    -14
       logo-15    -15
       logo-16    -16
       logo-17    -17
       logo-18    -18
       logo-2     -2
       logo-3     -3
       logo-4     -4
       logo-5     -5
       logo-6     -6
       logo-7     -7
       logo-8     -8
       logo-9     -9
       name-1     -1
       name-10    -10
       name-11    -11
       name-12    -12
       name-13    -13
       name-14    -14
       name-15    -15
       name-16    -16
       name-17    -17
       name-18    -18
       name-2     -2
       name-3     -3
       name-4     -4
       name-5     -5
       name-6     -6
       name-7     -7
       name-8     -8
       name-9     -9
       termine-1  -1
       termine-2  -2
       termine-3  -3
       termine-4  -4
       termine-5  -5
       termine-6  -6
       termine-7  -7
       termine-8  -8
       termine-9  -9
     requestReadings:
       update:
         logo-1     reading 02-1
         logo-10    reading 02-10
         logo-11    reading 02-11
         logo-12    reading 02-12
         logo-13    reading 02-13
         logo-14    reading 02-14
         logo-15    reading 02-15
         logo-16    reading 02-16
         logo-17    reading 02-17
         logo-18    reading 02-18
         logo-2     reading 02-2
         logo-3     reading 02-3
         logo-4     reading 02-4
         logo-5     reading 02-5
         logo-6     reading 02-6
         logo-7     reading 02-7
         logo-8     reading 02-8
         logo-9     reading 02-9
         name-1     reading 01-1
         name-10    reading 01-10
         name-11    reading 01-11
         name-12    reading 01-12
         name-13    reading 01-13
         name-14    reading 01-14
         name-15    reading 01-15
         name-16    reading 01-16
         name-17    reading 01-17
         name-18    reading 01-18
         name-2     reading 01-2
         name-3     reading 01-3
         name-4     reading 01-4
         name-5     reading 01-5
         name-6     reading 01-6
         name-7     reading 01-7
         name-8     reading 01-8
         name-9     reading 01-9
         termine-1  reading 04-1
         termine-2  reading 04-2
         termine-3  reading 04-3
         termine-4  reading 04-4
         termine-5  reading 04-5
         termine-6  reading 04-6
         termine-7  reading 04-7
         termine-8  reading 04-8
         termine-9  reading 04-9
Attributes:
   alias      Play-Off's
   enableControlSet 1
   group      Informationen
   icon       Wunderlist
   reading01Name name
   reading01RegOpt g
   reading01Regex <span class="hw-appdb__playoff__round__serie__team__name">(.*)<\/span>
   reading02Name logo
   reading02RegOpt g
   reading02Regex <div class="hw-appdb__playoff__round__serie__team"><img height="66" src="(.*)"><\/div>
   reading03Name standing
   reading03RegOpt g
   reading03Regex <div class="hw-appdb__playoff__round__serie__team__standing">(.*)<\/div>
   reading04Name termine
   reading04RegOpt g
   reading04Regex <p class="hw-appdb__playoff__round__serie__info">(.*)<\/p>
   room       Information->Hockey
   stateFormat name-18
   timeout    30
   userattr   .*

betateilchen

#17
Dein größter Fehler ist, dass Du immer wieder versuchst, eine regex anhand des Quelltextes zu erstellen, den Du in Deinem Browser siehst. Das wird in der Mehrzahl der Fälle nicht funktionieren, weil die Quelltextanzeige im Browser eine andere Darstellung zeigen wird, als das, was im HTTPMOD device ankommt.

Tatsächlich kommt der Wert nämlich zweizeilig an:

<div class="hw-appdb__playoff__round__serie__team__standing">
1 </div>

und genau deshalb wird bei Dir kein reading erzeugt. Deine regex

<div class="hw-appdb__playoff__round__serie__team__standing">(.*)<\/div>
ist schlichtweg falsch und passt nicht auf diesen String.
Probiere mal mit Zeilenumbruch:

<div class="hw-appdb__playoff__round__serie__team__standing">\n(.*)<\/div>


Dir fehlt halt komplett das Grundverständnis dazu, wie eine HTML Seite aufgebaut ist und wie man mit regex arbeitet. Und jeden Hinweis und jede Bitte, Du sollst Dir ein paar Grundlagen dazu aneignen, werden von Dir in den Wind geschlagen. Es gibt auch deutsche Webseiten, auf denen regex erklärt werden.

Kennst Du eigentlich den Unterschied zwischen "im Forum um Hilfe bitten" und "die Gutmütigkeit von Forummitgliedern ausnutzen" ?

Dein Verhalten finde ich ein ganzes Stück weit unfair gegenüber den Menschen, die Dir hier - aller Widrigkeiten von Deiner Seite zum Trotz - immer wieder versuchen, zu helfen und Dir Ratschläge geben.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

#18
Bei mir kommen übrigens mit Deiner regex keine readings für das logo.

Deshalb verwende ich diese regex:

attr del2 reading02Regex https:\/\/appdb.hockeyweb.de\/v2\/teamLogos\/.*\.png
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Superposchi

Erst mal Danke, da wäre ich wirklich im Leben nicht drauf gekommen. Soweit ich es von verschiedenen Programmiersprachen gelernt habe wird ein Zeilenumbruch ignoriert solange er innerhalb der Tags liegt und vom Layout erzeugt wird. Für mich ist nicht ersichtlich, dass das ein absichtlicher Zeilenumbruch ist.

ZitatDir fehlt halt komplett das Grundverständnis dazu, wie eine HTML Seite aufgebaut ist und wie man mit regex arbeitet.
Jain, den Aufbau kenne ich schon, habe selbst schon welche mit HTML4 und auch HTML5 erstellt. Aber bei Regex fehlt mir das Verständnis - das gebe ich offen zu. Habe ich auch in den gut 20 Jahren in denen ich hobbymäßig mit Programmieren zu tun gehabt habe nie gebraucht.

ZitatUnd jeden Hinweis und jede Bitte, Du sollst Dir ein paar Grundlagen dazu aneignen, werden von Dir in den Wind geschlagen. Es gibt auch deutsche Webseiten, auf denen regex erklärt werden.
Das stimmt so einfach nicht. Die meisten Quellen sind in Englisch und da blicke ich nicht durch wenn ich sie nicht anhand von Praxisbeispielen "erlerne". Deutsche Quellen habe ich bei einer Googlesuche in den letzten Tagen keine gefunden. Wenn es welche geben sollte nutze ich anscheinend komplett falsche Suchbegriffe. Mit "Regex Erklärung Deutsch" oder "Regex Hinweise Tips Deutsch" habe ich beispilesweise keine Ergebnisse bekommen.

ZitatKennst Du eigentlich den Unterschied zwischen "im Forum um Hilfe bitten" und "die Gutmütigkeit von Forummitgliedern ausnutzen" ?
Dein Verhalten finde ich ein ganzes Stück weit unfair gegenüber den Menschen, die Dir hier - aller Widrigkeiten von Deiner Seite zum Trotz - immer wieder versuchen, zu helfen und Dir Ratschläge geben.
Ich stelle Fragen, weil das meine Art ist zu lernen - wenn du das als Ausnutzen betrachtest kann ich daran nichts ändern. Für mich impliziert der Begriff etwas vällig anderes. Und bisher habe ich jeden Ratschlag so gut ich konnte beherzigt und umgesetzt. Nur weil ich nicht alles behalte und vielleicht deshalb mal doppelt nachfrage ignoriere ich nichts.

ZitatBei mir kommen übrigens mit Deiner regex keine readings für das logo.
Das ist komisch, da bei mir die url des Logo's zurückgegeben wird nachdem ich das img-tag hinzugefügt hatte.
Also dein Regex "https:\/\/appdb.hockeyweb.de\/v2\/teamLogos\/.*\.png" müsste bereinigt (also ohne die auskommentierenden "\" ja foldend lauten: "https://appdb.hockeyweb.de/v2/teamLogos/.*.png". Da ist doch weder ein Tag enthalten noch sonst ein eindeutiger identifier. Sieht für mich ehrlich gesagt auch eher wie der Zugriff auf eine Datenbank aus. Wie wird dann die Abhängigkeit zwischen Logo, Name, Tabellenplatz etc. hergestellt? Ich will ja nicht nur die Logos, sondern diese auch verschiedenen Stellen expleziet zuweisen.

betateilchen

Mir ist ohnehin noch nicht klar, wie die Darstellung der readings dieser playoff-Partien am Ende aussehen soll. Ist mir aber auch wurscht, mir ging es nur darum, die Logos überhaupt zu bekommen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Superposchi

Schade, denn die Hauptprobleme hier im Board sind:
1. es wird zwar auf Fehler hingewiesen und oft auch eine Lösung genannt, doch der Weg zur Lösung Fehlt.
2. es wird zur Eigeninitiative aufgerufen, doch wenn dann Rückfragen aufkommen weil etwas unschlüssig ist wird abgeblockt.

Letzendlich spielt es aber auch keine Rolle wie die Logos Dargestellt werden. Im FTUI3 reicht es ja wenn die url vorhanden ist. Aber vielleicht sagt dir ja der Begriff PlayOff-Baum etwas.

betateilchen

#22
Zitat von: Superposchi am 30 August 2024, 19:49:152. es wird zur Eigeninitiative aufgerufen, doch wenn dann Rückfragen aufkommen weil etwas unschlüssig ist wird abgeblockt.

Wo wurde denn hier irgendwas abgeblockt? Das ist genau so eine Unterstellung von Dir, die ich hier meinte:

Zitat von: betateilchen am 30 August 2024, 17:57:02unfair gegenüber den Menschen, die Dir hier - aller Widrigkeiten von Deiner Seite zum Trotz - immer wieder versuchen, zu helfen und Dir Ratschläge geben.

Du vergraulst letztendlich JEDEN, der versucht, Dir zu helfen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Superposchi

Ich will mich nicht streiten, aber wie nennst du deine Reaktion zuvor?

Statt auf meine Frage nach deiner Regex zu antworten kommt ein Spruch wie dieser hier:
ZitatIst mir aber auch wurscht,
DAS nenne ich abblocken.

Gerade du hast mich immer wieder aufgefordert selbst aktiv zu werden, zu lernen, mich mit der Materia zu beschäftigen. Aber wenn ich zu einer Aussage nachfrage weil es unklar und unverständlich ist, dann ...

RalfRog

Zitat von: Superposchi am 30 August 2024, 18:47:41Deutsche Quellen habe ich bei einer Googlesuche in den letzten Tagen keine gefunden. Wenn es welche geben sollte nutze ich anscheinend komplett falsche Suchbegriffe. Mit "Regex Erklärung Deutsch" oder "Regex Hinweise Tips Deutsch" habe ich beispilesweise keine Ergebnisse bekommen.

Bei mir liefert die banale Googlesuche "regex deutsch" ein paar Seiten die zum Einstieg und probieren taugen.

Sogar zum Regex testen in Deutsch
https://www.regexe.de/

Gruß Ralf
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

betateilchen

Zitat von: Superposchi am 30 August 2024, 22:02:48
ZitatIst mir aber auch wurscht,
DAS nenne ich abblocken.

Das hat überhaupt nichts mit abblocken zu tun. Es bezieht sich einfach nur darauf, wie ich die regex verwendet habe, um Logos zu finden, weil Deine Lösung bei mir nicht funktioniert hat.

Du hast eine Lösung, die für Dich funktioniert, also muss ich darauf nicht weiter eingehen, und es kann mir deshalb wurscht sein.

q.e.d.

Zitat von: Superposchi am 30 August 2024, 22:02:48Aber wenn ich zu einer Aussage nachfrage weil es unklar und unverständlich ist, dann ...

... dann hast Du bisher in diesem Thread immer von irgendjemandem eine Antwort bekommen, der sich mit Deiner Frage beschäftigt hat.
Also hör bitte, hier permanent rumzujammern und die beleidigte Leberwurst zu spielen. Das macht wirklich keinen Spaß mehr.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

passibe

#26
Zitat von: Superposchi am 30 August 2024, 19:49:15Schade, denn die Hauptprobleme hier im Board sind:
1. es wird zwar auf Fehler hingewiesen und oft auch eine Lösung genannt, doch der Weg zur Lösung Fehlt.
2. es wird zur Eigeninitiative aufgerufen, doch wenn dann Rückfragen aufkommen weil etwas unschlüssig ist wird abgeblockt.

Sorry, aber das stimmt so pauschal jedenfalls nicht.
Zu 1.: Ich versuche den Weg zur Lösung immer mit zu erklären, aber du musst schon auch verstehen, dass, je mehr des Weges man erklären muss, desto mehr Zeit und Mühe kostet es, die Antwort zu schreiben. Und dann ist da halt irgendwann Schluss, z.B. weil ich jetzt nicht in meiner Antwort sämtliche Regex-Eigenheiten erklären kann. Aber, und das ist eine gute Überleitung zu, 2.:

Denn dann geht halt der Punkt los, ab dem du auch ein bisschen selbst recherchieren kannst. Vor allem, wenn dir eben Ressourcen genannt werden. Es ist einfach nicht besonders wertschätzend für die Leute, die dir antworten, wenn du diese Ressourcen a) gar nicht nutzt oder b) pauschal meckerst, dass sie nur auf Englisch sind (ChatGPT kann übrigens auch deutsch) und dann aber nicht selbst auf die Idee kommst nach deutschen Seiten zu suchen.
Das sind dann alles keine "Rückfragen zur Eigeninitiative" – denn du hast gar keine Eigeninitiative gezeigt – und sind es einfach nur "Rückfragen".

Und dann erscheint das für die Leute, die dir antworten irgendwann unfair, denn die lösen hier deine Probleme während du dir noch nicht einmal im Ansatz die Mühe machst das nachzuvollziehen und selbst dazuzulernen.

Und dann – Überraschung – werden die Antworten patzig oder nicht so hilfreich. Denn die Antwortenden haben keinen Bock mehr sich Mühe zu geben, weil sie merken, dass du dir auch keine Mühe gibst.

Vielleicht hilft das ein bisschen, um die Situation zu verstehen und ggfs. in Zukunft positiv zu verändern.

Prof. Dr. Peter Henning

Irgendwie endet das mit "Superposchi" immer in der Auseinandersetzung.

pah

RalfRog

Zitat von: Prof. Dr. Peter Henning am 01 September 2024, 10:17:27Irgendwie endet das mit "Superposchi" immer in der Auseinandersetzung.

und Schweigen vom TE    ...als Mitleser verläuft es am Ende dann im Nirwana.

Kürzlich beim FileLog Problem war es irgendwie genauso. Doof.
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

Prof. Dr. Peter Henning

#29
Ich stelle dem TE hier noch einmal einen Text aus meinem FHEM-Buch zur Verfügung - über die Frage, wo und wie man Hilfe findet. Vielleicht liest er doch mal etwas

LG

pah