[HTTPMOD] Parsen von idealo.de funktioniert nicht mehr

Begonnen von Romoker, 29 Januar 2022, 17:01:20

Vorheriges Thema - Nächstes Thema

Romoker

Ich habe festgestellt, dass eine ehemals funktionierende Preisabfrage seit September letzten Jahres kein Ergebnis mehr liefert. Also lag der Verdacht nahe, dass sich die abgefragte Seite geändert hat. Dem war aber nicht so. Die gesuchte eindeutige Zeichenkette war immer noch im HTML-Source Code der abgefragten URL, den ich über meinen Browser aufgerufen hatte, vorhanden. Die definierte Regex funktioniert auch erfolgreich in einem Online-Regex-Parser. HTTPMOD liefert aber kein Ergebnis.
Ich habe mir dann in meinem HTTPMOD die HTTP-Response mit showBody anzeigen lassen und war überrascht, dass dort meine erwartete Zeichenkette nicht vorhanden ist.

Jetzt stellt sich mir die Frage, warum unterscheidet sich die HTTP-Response derselben URL in HTTPMOD und in meinem Browser?

Die abgefragte URL:
https://www.idealo.de/preisvergleich/OffersOfProduct/5035001_-maxify-mb5150-canon.html
Die HTTPMOD-Regex:
reading01Regex content="Bereits ab ([\d]+)

Hier die ersten Zeilen vom Browser-HTML-Source-Code mit dem gesuchten Preis:
<!DOCTYPE html>
<html class="DE no-gec desktop no-js" lang="de-DE"><head>
<meta charset="UTF-8">
<link rel="canonical" href="https://www.idealo.de/preisvergleich/OffersOfProduct/5035001_-maxify-mb5150-canon.html"/>
<meta name="robots" content="index, follow">
<meta name="description" content="Bereits ab 189,00 € ✓ Große Shopvielfalt ✓ Testberichte &amp; Meinungen ✓ | Jetzt Canon  MAXIFY MB5150 All in one Drucker günstig kaufen bei idealo.de"/>
<meta name="viewPort" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/>
<link rel="preconnect" href="//cdn.idealo.com" crossorigin/>
<link rel="dns-prefetch" href="//cdn.idealo.com"/>
<link rel="preconnect" href="https://script.ioam.de" crossorigin/>
<link rel="dns-prefetch" href="https://script.ioam.de"/>


Und hier die ersten Zeilen der HTTPMOD-HTTP-Response:
<!DOCTYPE html>
<html class="DE no-gec desktop no-js" lang="de-DE"><head>
<meta charset="UTF-8">
<meta name="viewPort" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/>
<link rel="preconnect" href="//cdn.idealo.com" crossorigin/>
<link rel="dns-prefetch" href="//cdn.idealo.com"/>
<link rel="preconnect" href="https://script.ioam.de" crossorigin/>
<link rel="dns-prefetch" href="https://script.ioam.de"/>


In der HTTPMOD-HTTP-Respose fehlt der entscheidene Teil mit der Preisinformation.
Mir ist nicht klar, warum sich Browser- und HTTPMOD-HTTP-Response so unterschiedlich verhalten und ich habe keinen Ansatz gefunden, wie ich mit HTTPMOD an meine gewünschte Preisinformation kommen kann.
Kann mir da jemand auf die Sprünge helfen?

Hier noch zur Vollständigkeit mein List des HTTPMOD (mit gekürztem http body):
Internals:
   BUSY       0
   DEF        https://www.idealo.de/preisvergleich/OffersOfProduct/5035001_-maxify-mb5150-canon.html 600
   FUUID      60fbce7d-f33f-df6c-3945-ff0e135c0f8da741
   Interval   600
   MainURL    https://www.idealo.de/preisvergleich/OffersOfProduct/5035001_-maxify-mb5150-canon.html
   ModuleVersion 4.1.10 - 6.7.2021
   NAME       CanonMaxify
   NOTIFYDEV  global
   NR         574
   NTFY_ORDER 50-CanonMaxify
   STATE      ???
   TYPE       HTTPMOD
   httpbody   <!DOCTYPE html>
<html class="DE no-gec desktop no-js" lang="de-DE"><head>
<meta charset="UTF-8">
<meta name="viewPort" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"/>
<link rel="preconnect" href="//cdn.idealo.com" crossorigin/>
<link rel="dns-prefetch" href="//cdn.idealo.com"/>
<link rel="preconnect" href="https://script.ioam.de" crossorigin/>
<link rel="dns-prefetch" href="https://script.ioam.de"/>
<link rel="shortcut icon" href="//cdn.idealo.com/storage/offerpage/assets/favicon-01ae3a7c0a539ff987a4.ico"/>
<title></title>
.....
..... http body gekürzt
.....

   CompiledRegexes:
   HTTPCookieHash:
     JSESSIONID;:
       Name       JSESSIONID
       Options    Path=/; Secure; HttpOnly
       Path       
       Value      A572400996AD82425289BD645FB69224
     SSLB;/:
       Name       SSLB
       Options    path=/; domain=.idealo.de
       Path       /
       Value      1
     ipcuid;:
       Name       ipcuid
       Options    Domain=.idealo.de; Expires=Fri, 29-Apr-2022 15:38:35 GMT; Path=/
       Path       
       Value      014jacqy00kyymdcuu
     sessionid;/:
       Name       sessionid
       Options    expires=Sat, 29-Jan-2022 17:13:35 GMT; path=/; domain=.idealo.de
       Path       /
       Value      ab39bf46-db9d-6f69-d617-0b7995135723
   HttpUtils:
     NAME       
     addr       https://www.idealo.de:443
     auth       0
     code       429
     compress   1
     conn       
     data       
     displayurl https://www.idealo.de/preisvergleich/OffersOfProduct/5035001_-maxify-mb5150-canon.html
     header     Cookie: JSESSIONID=8AE0F0582A47050B5E9880C3F7CDE519; SSLB=1; ipcuid=014jacqy00kyymdcuu; sessionid=ab39bf46-db9d-6f69-d617-0b7995135723
     host       www.idealo.de
     httpheader HTTP/1.0 429 Too Many Requests
Server: idealoAppServer
RTSS: 1-1-4
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
Content-Encoding: gzip
Content-Type: text/html;charset=UTF-8
Content-Language: de-DE
Expires: Sat, 29 Jan 2022 15:38:35 GMT
Cache-Control: max-age=0, no-cache, no-store
Pragma: no-cache
Date: Sat, 29 Jan 2022 15:38:35 GMT
Connection: close
Vary: Accept-Encoding
Set-Cookie: SSLB=1; path=/; domain=.idealo.de
Set-Cookie: ipcuid=014jacqy00kyymdcuu; Domain=.idealo.de; Expires=Fri, 29-Apr-2022 15:38:35 GMT; Path=/
Set-Cookie: JSESSIONID=A572400996AD82425289BD645FB69224; Path=/; Secure; HttpOnly
Set-Cookie: sessionid=ab39bf46-db9d-6f69-d617-0b7995135723; expires=Sat, 29-Jan-2022 17:13:35 GMT; path=/; domain=.idealo.de
     httpversion 1.0
     hu_blocking 0
     hu_filecount 1
     hu_port    443
     hu_portSfx
     ignoreredirects 1
     loglevel   4
     path       /preisvergleich/OffersOfProduct/5035001_-maxify-mb5150-canon.html
     protocol   https
     redirects  0
     timeout    2
     url        https://www.idealo.de/preisvergleich/OffersOfProduct/5035001_-maxify-mb5150-canon.html
     sslargs:
   QUEUE:
   READINGS:
     2022-01-29 16:38:35   LAST_REQUEST    update
     2022-01-29 16:38:35   MATCHED_READINGS
     2021-09-21 23:03:27   Preis           175
     2022-01-29 16:38:35   UNMATCHED_READINGS Preis
   REQUEST:
     context    reading
     data       
     header     
     ignoreredirects 0
     num        unknown
     retryCount 0
     type       update
     url        https://www.idealo.de/preisvergleich/OffersOfProduct/5035001_-maxify-mb5150-canon.html
   defptr:
     readingBase:
       Preis      reading
     readingNum:
       Preis      01
     readingOutdated:
     requestReadings:
       update:
         Preis      reading 01
Attributes:
   bodyDecode auto
   reading01Name Preis
   reading01Regex content="Bereits ab ([\d]+)
   room       Monitoring
   showBody   1
   showError  1
   showMatched 1


Viele Grüße
BeagleBoneBlack & Raspberry Pi 4; FB7490; div. Homematic Komponenten; CUL433: CUL_TX, Conbee II, SOMFY, 1-Wire, Z-Wave, Zigbee, SmartPlugs von Sonoff und Shelly mit MQTT