Skript maskiert Informationen in HTML-Code, wie auslesen?

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Mokki.

    Skript maskiert Informationen in HTML-Code, wie auslesen?

    Ich habe folgendes Problem:

    Ich möchte von der Website medizinfuchs.de für ein bestimmtes Medikament die Preise auslesen.
    Diese stehen auch im Quelltext, ich konnte sie auch schon erfolgreich auslesen, danach in double-Variablen umwandeln und mit ihnen rechnen.

    Nun folgt aber nach 8 Preisen ein Button "x weitere Apotheken und Shops anzeigen", der die anderen Preise versteckt. Ich benötige allerdings alle
    zur Verfügung stehenden Preise für meine Berechnungen. Also dachte ich mir folgendes: Ich lese aus dem HTML-Dokument die ID des Buttons aus,
    und klicke ihn folgendermaßen an:

    Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. WebBrowser1.Navigate("https://www.medizinfuchs.de/?params[search_cat]=1&params[search]=07728561")
    3. End Sub
    4. Private Sub WebBrowser1_DocumentCompleted() Handles WebBrowser1.DocumentCompleted
    5. If Not WebBrowser1.IsBusy Then
    6. WebBrowser1.Document.GetElementById("lade_apotheken").InvokeMember("Click")
    7. End If
    8. End Sub


    Das klappt auch ganz gut. Das Programm klickt auf den Button und lädt die übrigen Preise.
    Jetzt das Problem: Die neu geladenen Preise aus dem Skript erscheinen danach nicht im HTML-Code.
    Ich dachte ich lasse das Skript per klick auf den Button ausführen und hole mir danach die HTML-Datei in der
    das Skript durch den HTML-Code ersetzt wurde (so kenne ich das von PHP). Leider bleibt das Skript anstelle der
    neuen Preise im Code, dementsprechend kann ich die Preise nicht auslesen.
    Hier das Skript zum laden der Preise:

    Quellcode

    1. <!-- Weitere Apotheken laden -->
    2. <div style="padding:30px 0 0 0;text-align:center;">
    3. <div id="lade_apotheken_bitte_warten" class="color_gray text_xlarge">
    4. <div>Apotheken und Shops werden geladen ...</div>
    5. </div>
    6. <a id="lade_apotheken" href="javascript:void(0);" style="padding:5px 25px"
    7. class="btn_gray text_normal">107 weitere Apotheken und Shops anzeigen</a>
    8. </div>
    9. <script type="text/javascript" language="javascript">
    10. this.reloadApos = function (limit) {
    11. var apolist = new Apothekenliste();
    12. apolist.params_search = "7728561";
    13. apolist.params_limit = parseInt(limit);
    14. apolist.ladeApothekenliste();
    15. }
    16. $(function () {
    17. $('#lade_apotheken').click(function () {
    18. $('#lade_apotheken_bitte_warten').show();
    19. reloadApos(200);
    20. $(this).hide();
    21. });
    22. });
    23. </script>


    Wenn es funktioniert soll dieses Skript verschwinden und es sollen die Preise die sich hinter dem Button verstecken im HTML- Text stehen, so wie die ersten acht angezeigten, nach dem Muster:

    Quellcode

    1. <div class="col-xs-24 single">
    2. 14,60 €
    3. </div>


    Es bleibt jedoch das Skript. Meine Frage: Gibt es eine Möglichkeit, die Preise die sich hinter dem Button verstecken in die HTML-Datei zu bekommen oder sie sonst irgendwie auszulesen?
    Da das Problem denke ich relativ speziell ist, habe ich dazu bisher noch nichts bei Google oder in anderen Foren gefunden. ?(

    P.S.: Verzeihung für meinen vorherigen Post hier im Forum. Ich konnte das Problem nach einigen Stunden selber lösen, Ursache war ein blöder Fehler, der mir nicht aufgefallen ist.
    Ich hoffe, man nimmt mir das nicht übel :saint:
    Also wenn ich auf den Button klicke, brauch es eine Weile, aber dann stehen die Preise auch im DOM. Über einen Link wär ich aber dankbar denk wir reden etwas aneinander vorbei.

    darkmaterix schrieb:

    hinter dem Button verstecken

    Man kann zwar analysieren was der Button aufruft, aber was das dann macht puhh das ist meistens ne Wissenschaft für sich vor allem weil die Codes meistens extra komprimiert sind um Speicher zu sparen und mehr Geschwindigkeit zu haben.

    Lg Mokki
    ​Smartnotr - ein intelligentes Notizprogramm
    zum Thread