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