Webseiten quelltext auslesen

Hallo
ich benötige mal Unterstützung. Schwarm Wissen

ich möchte gern den Vertretungsplan meines Sohnes auslesen um dann später anzuzeigen aus so los ist. Das Filtern werde ich alleine hin bekommen das Problem ist ich bekomme den Quelltext schon gar nicht. Rückmeldung ist: " Your browser might not be supported by WebUntis"
ist schon klar ich komme mit dem ESP32 um die Ecke.
hat jemand eine Idee wie ich das umgehen kann?

Vielen Dank.

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.

mfg ein Moderator.

Du kannst nicht den Webseiten-Quelltext auslesen sondern nur den HTML bzw Javascript und CSS Code den der Server an den Browser schickt, wobei Teile von anderen Seiten/ Quellen ( zb Google Api / Fonts) nachgeladen werden können.
Kann der Client Javascribt ausführen?

Grüße Uwe

Hallo

Jetzt bin ich verwirrt ...

ich muss das mal genauer beschreiben.... aus die Idee bin gekommen da ich ja die Wetterdaten auch auslesen kann.. OK ist ein wenig anders (json) aber gut.

ich nehme das alt bekannt Skipt von Santos.

/*
  Rui Santos
  Complete project details at Complete project details at https://RandomNerdTutorials.com/esp32-http-get-post-arduino/

  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files.

  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.
*/

#include <WiFi.h>
#include <HTTPClient.h>

const char* ssid = "REPLACE_WITH_YOUR_SSID";
const char* password = "REPLACE_WITH_YOUR_PASSWORD";

//Your Domain name with URL path or IP address with path
String serverName = "http://192.168.1.106:1880/update-sensor";

// the following variables are unsigned longs because the time, measured in
// milliseconds, will quickly become a bigger number than can be stored in an int.
unsigned long lastTime = 0;
// Timer set to 10 minutes (600000)
//unsigned long timerDelay = 600000;
// Set timer to 5 seconds (5000)
unsigned long timerDelay = 5000;

void setup() {
  Serial.begin(115200); 

  WiFi.begin(ssid, password);
  Serial.println("Connecting");
  while(WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to WiFi network with IP Address: ");
  Serial.println(WiFi.localIP());
 
  Serial.println("Timer set to 5 seconds (timerDelay variable), it will take 5 seconds before publishing the first reading.");
}

void loop() {
  //Send an HTTP POST request every 10 minutes
  if ((millis() - lastTime) > timerDelay) {
    //Check WiFi connection status
    if(WiFi.status()== WL_CONNECTED){
      HTTPClient http;

      String serverPath = serverName + "?temperature=24.37";
      
      // Your Domain name with URL path or IP address with path
      http.begin(serverPath.c_str());
      
      // If you need Node-RED/server authentication, insert user and password below
      //http.setAuthorization("REPLACE_WITH_SERVER_USERNAME", "REPLACE_WITH_SERVER_PASSWORD");
      
      // Send HTTP GET request
      int httpResponseCode = http.GET();
      
      if (httpResponseCode>0) {
        Serial.print("HTTP Response code: ");
        Serial.println(httpResponseCode);
        String payload = http.getString();
        Serial.println(payload);
      }
      else {
        Serial.print("Error code: ");
        Serial.println(httpResponseCode);
      }
      // Free resources
      http.end();
    }
    else {
      Serial.println("WiFi Disconnected");
    }
    lastTime = millis();
  }
}

ich bekomme ja auch quelltext zurück da steht, dann drin falscher Browser....

Auszug:
            <a href="https://content.webuntis.com/WebUntis/static/2024.6.3/html/browser-not-supported-en.html" style="text-decoration: none; color: black;">
                Your browser might not be supported by WebUntis - click here for further information!
            </a> etc....

Die frage ist ob ich bei der Anfrage den Browsertyp mit übergeben kann ....

VG
JKEF

Du willst nicht den Quelltext, sondern den Inhalt empfangen.
Setze doch einfach den user-agent
z.B. auf "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:120.0) Gecko/20100101 Firefox/120.0" --> aktueller Firefox

Gruß Tommy

Hallo

nach einigen rumprobieren ist mir aufgefallen, das mein Problem wo anders liegen muss.

ich denke mal der ESP lädt/zeigt die Seite bevor sie fertig geladen ist.
Die habe ich auch ab und zu, wenn ich die Wettervorhersage mir ziehe.
Oder es liegt am JS ???

hat jemand noch eine Idee ?

VG

JKEF

<div id="grupetLoadingMessage">
    WebUntis wird geladen ...
</div>



<script type="text/javascript" src="https://content.webuntis.com/WebUntis/static/2024.6.3/js/untis/wrapper.js"></script>
<script type="text/javascript" src="https://content.webuntis.com/WebUntis/static/2024.6.3/js/webuntis-monitor/main.js"></script>
*** hier sollten die Daten stehen*****
</body>
</html>

Ja, da wird Javascript nachgeladen.
Der Browser führt dann das Javascript aus uns zeigt das Ergebnis an. Wenn der Client kein Javascript ausführt, kommst Du natürlich nicht an die Daten / dargestellten Text.

Grüße Uwe

Was ist das denn für ein seltsames Konstrukt, das die Daten erst per JS im Body aufbereitet? Die IP ist ja eine lokale, d.h. den Schrott hast Du Dir selbst installiert.

Das kannst Du nicht mit einem MC abrufen.

Gruß Tommy

Hallo

da magst du recht haben .....
Was ist MC ? und nein es ist externe IP wie kommst du darauf???

ist bin ich aber an dem punkt wo mir nichts mehr einfällt ...........

fakt ist: esp soll URL aufrufen extern ohne Passwort etc.
und dann Inhalt wieder geben erkläre mir mal bitte was ich falsch mache ...

ich verstehe es nicht ....
PS: was habe ich mir Installiert das würde ich gern genauer wissen ???

Ich muss trotz alle dem mal anführen danke für die hilfe

Hallo Uwefed

Ja ich glaube da liegst du richtig .... nee Idee hast du aber auch nicht Oder ???

VG

JKEF

192.168.x.y ist eine lokale IP, die nicht geroutet wird, also sich in Deinem lokalen Netz befinden muss. Ob Du willst oder nicht.
MC ist der MicroController und der kann im Normalfall kein Javascript interpretieren. Es gibt eine Lib für den ESP32, die etwas davon können soll, aber ungetestet.

Gruß Tommy

Er sagt ja:

Scheint also nicht sein angepasster Quellcode zu sein, sondern das Original aus dem Netz. Kann schon sein das der nur lokal zugegriffen hatte.

Gruß, Jürgen

Wenn er uns mit einem anderen Quelltext verarscht, als den, den er nutzt, kann er bleiben, wo der Pfeffer wächst.

Ich bin raus.

Gruß Tommy

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.