Deutsch
Eingangshalle

HTML; Livetiming-Webseite auslesen

 

Christof
Neuß
Hallo,

für eine eigene Darstellung (private Datei) möchte ich die Webseite [...] 
auslesen.
Mir geht es um die dargestellte (und regelmäßig aktualisierte) Tabelle mit den darin enthaltenen Werten.
Wenn ich mir den Quelltext anschauen, sind diese Werte aber gar nicht darin enthalten. Bin nicht so firm in dem Kram, denke aber mal, dass das etwas mit den Scripten zu tun hat, die dort ziemlich am Ende aufgeführt werden.

Hat jemand eine Idee, wie das trotzdem klappen könnte?

Im Zweifel würde sogar folgendes gehen:
TAB im Browser aktivieren, über STRG+A alles auswählen, mit STRG+C in die Zwischenablage kopieren, geöffnete Kalkulationstabelle aktivieren und mit STRG+V die Inhalte einfügen. Nur sollte das Ganze dann eben alle 30 Sekunden automatisch ablaufen. Nicht elegant - ich weiß - und auch nicht so ganz einfach, aber... in der Not frisst der Teufel Fliegen.

Wie auch immer... vielen Dank im Voraus und viele Grüße

Christof
 
XProfan X4
Win10 16 GB RAM
04.06.2019  
 




Thomas
Freier
Moin Christof,
hatte da etwas mit 'Pascals' ocx gemacht.
Der html-Quelltext wird in ein Edit geladen und dann zeilenweise nach den Begriffen und den Werten gesucht. Vielleicht ein Ansatz.
window 540,760
WindowTitle "Hvide Sande Sluse"
usermessages 16
@Set("ErrorLevel", 2)
 $H Windows.ph
 $H ocx3a.ph
 $I ocx3a.inc
Declare x%
x% = @MessageBox("Soll dieses Programm\n\nauf Ihrem Gerät gestartet werden?\n\nDie Ausführung erfolgt\nunter Ausschluß jeglicher Ansprüche!","Hvide-Sande",4096+4+32+256)
Case x%=7 : END//Abbrechen
var font&=CreateFont("Arial",18,0,0,0,0)
SetDialogFont Font&
declare File$,Edit&,WebControl&,WebObject&,Document&,Body&,da&,fehl%,wert&,zeit$
Declare start%,neu%,Knopf%,ende%,alt$
File$="https://hyde.dk"
//für den Quelltext
Edit&=create("Multiedit",%hwnd,"",610,10,800,660)
SetFont Edit&,Font&
//Datendatei vorhanden, sonst neu

Ifnot @FileExists(($ProgDir+"HVIDE.dbf"))

    Assign #1, "hvide.STR"
    Rewrite #1
    Print #1, "Datum; C; 10; 0"
    Print #1, "Zeit; C; 10; 0"
    Print #1, "Strom; C; 10; 0"
    Print #1, "Havn; C; 10; 0"
    Print #1, "Fjord; C; 10; 0"
    Close #1
    db("Create", "hvide.STR", "hvide.DBF")

endif

//Listbox für die Datenanzeige
wert& = @Create("GridBox",  %hwnd,"Datum;0;100;Zeit;0;70;Strømning;1;110;Havn;1;80;Sluse;1;80", 2, 10,10,500,660)
//alte Werte einlesen
@db("Open", #1, "Hvide.DBF")

WhileNot %dbEoF=1

    zeit$=@Trim$(@DB("Get", "DATUM"))
    zeit$=zeit$+"|"+@Trim$(@DB("Get", "ZEIT"))
    zeit$=zeit$+"|"+@Trim$(@DB("Get", "STROM"))
    zeit$=zeit$+"|"+@Trim$(@DB("Get", "HAVN"))
    zeit$=zeit$+"|"+@Trim$(@DB("Get", "FJORD"))
    @Insertstring(wert&,0,zeit$)
    @db("Go", "NEXT")

ENDWHILE

@db("Close", #1)
//letzter Strom
alt$= @Trim$(@gettext$(wert&,0,4))//Vergleich für lukket- åben Abfrage
start%=1
WERTE//zur Prozedur Webseite laden und Werte in die erste Zeile schreiben
start%=0
neu%=0

while 1

    Waitinput 10000// nach Millisecunden wird Waitinput durchbrochen
    case %umessage=16:break
    zeit$=@dt("getTime", 0)

    SELECT val(@SUBSTR$(zeit$,2,":"))

        CASEOF 0,10,20,30,40,50

        //alle 10 Minuten Web neu laden
        Case neu%=0
        WERTE// neue auslesen ---
        neu%=1
        OTHERWISE
        neu%=0

    ENDSELECT

    Case ende%=1:BREAK

endwhile

DeleteObject font&
End
//Prozedur Werte auslesen #####################################################

Proc WERTE

    ocxInit()
    WebControl&=create("HTMLWin",%hwnd,file$,1,330,10,0,0)
    WebObject&=HTMLWin("QueryInterface",WebControl&)

    while ocxGet(WebObject&,"Busy")//'--warten, bis Datei geladen ist

        sleep 5

    endwhile

    Document&=ocxGet(WebObject&,"Document")
    Body&=ocxGet(Document&,"Body")
    settext Edit&,ocxGet(Body&,"outerHTML")//'--HTML-Quelltext
    //FEHLER?-------z.Z. nicht aktiv
    ' whileloop @GetCount(edit&)-1
    '  if @InStr("Die Navigation zu der Webseite wurde abgebrochen",@GetString$(edit&,&loop))> 0
    '    Knopf% = @MessageBox("Programm wird beendet","Kein WEB-Zugriff",0)
    '    Ende% = 1
    '    ocxRelease(Body&,Document&,WebObject&)
    '    WebObject&=HTMLWin("QueryInterface",WebControl&)
    '   RETURN
    ' endif
    ' endwhile
    var Startpos%=0
    Var tex$=""
    Var Strom$=""
    Var Sluse$=""
    Var Havn$=""
    Var tex1$=Date$(0)+"|"+@dt("getTime", 0)'+"|"
    //' Quelltext durchsuchen

    whileloop @GetCount(edit&)-1

        if @InStr("Gennemstrømning",@GetString$(edit&,&loop))> 0

            tex$= @GetString$(edit&,&loop)
            tex$=@Translate$(tex$,"<","")
            tex$=@Translate$(tex$,">","")
            tex$=@Translate$(tex$,"H2","")
            tex$=@Translate$(tex$,"SPAN","")
            tex$=@Translate$(tex$,"mSUP3/SUP/s//","m³")
            tex$=@Translate$(tex$,"class=floatright","")
            tex$=@Translate$(tex$,"Gennemstrømning","")
            Strom$=tex$

        endif

    EndWhile

    Tex$=""
    //' Quelltext durchsuchen

    whileloop @GetCount(edit&)-1

        if @InStr("Havnen",@GetString$(edit&,&loop))> 0

            tex$= @GetString$(edit&,&loop+1)
            tex$=@Translate$(tex$,"<TD class=alignright>","")
            tex$=@Translate$(tex$,"</TD>","")
            tex$=@Translate$(tex$,"</TR>","")
            Havn$=tex$

        endif

    endwhile

    Tex$=""
    //' Quelltext durchsuchen

    whileloop @GetCount(edit&)-1

        if @InStr("<TD>Slusedrift</TD>",@GetString$(edit&,&loop))> 0

            tex$= @GetString$(edit&,&loop+1)
            tex$=@Translate$(tex$,"<TD class=alignright>","")
            tex$=@Translate$(tex$,"</TD></TR></TBODY></TABLE>","")
            Sluse$=tex$

        endif

    EndWhile

    If start%=1

        @Insertstring(wert&,0,tex1$+"|"+strom$+"|"+havn$+"|"+sluse$)

    Else

        If @Trim$(sluse$)<>""

            If alt$<>@Trim$(sluse$)// val(strom$)<>0'

                @db("Open", #1, $ProgDir+"Hvide.DBF")
                @db("AppendBlank")
                @db("Put", "DATUM", Date$(0))
                @db("Put", "ZEIT", @dt("getTime",0))
                @db("Put", "STROM", Strom$)
                @db("Put", "HAVN", Havn$)
                @db("Put", "FJORD", sluse$)
                @db("PutRec", 0)
                @db("Close", #1)
                @Insertstring(wert&,0,tex1$+"|"+strom$+"|"+havn$+"|"+sluse$)
                alt$= @Trim$(sluse$)

            else

                '			  If val(gettext$(wert&,0,2))=0
                settext wert&,0,0, Date$(0)
                settext wert&,0,1, @dt("getTime",0)
                settext wert&,0,2, strom$
                settext wert&,0,3, havn$
                settext wert&,0,4, sluse$
                '					Else
                '					@Insertstring(wert&,0,tex1$+"|"+strom$+"|"+havn$+"|"+sluse$)
                '				endif

            EndIf

        endif

    endif

    destroywindow(WebControl&)
    ocxRelease(Body&,Document&,WebObject&)
    ocxDeInit()

endproc


10 kB
Hochgeladen:04.06.2019
Ladeanzahl113
Herunterladen
5 kB
Hochgeladen:04.06.2019
Ladeanzahl136
Herunterladen
 
Gruß Thomas
Windows XP SP2, XProfan X2
04.06.2019  
 




Christof
Neuß
Hab's am Wochenende nochmal versucht. Hat leider nicht funktioniert.
"Problem" ist, dass die Webseite auch nur am Rennwochende zur Verfügung steht. Wie gesagt, wenn ich mir den Quelltext der Seite anschaue, sind die gewünschten Daten der Tabelle da gar nicht enthalten. Deshalb nützt auch die Funktion sich den Quelltext in eine Variable zu kopieren und dann zu durchsuchen leider nicht.

Wenn noch jemand eine Idee hat... her damit.

Grüßle
 
XProfan X4
Win10 16 GB RAM
18.04.2021  
 




Christof
Neuß
Hallo,
die Seite ist wieder online und sendet Daten. Ich versuche mich nochmal mit einigen Ansätzen. Den Vorschlag vom Thomas habe ich mal aufgenommen, scheint aber (so) nicht zu funktionieren.  [...] 

URL ist ein wenig anders, als oben angegeben, aber es ist dieselbe Art. Durch die Parameter werden unterschiedliche Rennen angewählt.

Wer kann und möchte, darf gerne mitdenken. Freue mich auf Eure Hinweise.

Gruß
Christof
 
Win10 16 GB RAM
01.05.2021  
 




Christof
Neuß
Heute und morgen ist die Seite unter [...] 
erreichbar. Wer also nochmal schauen möchte...
 
XProfan X4
Win10 16 GB RAM
08.05.2021  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

4.149 Betrachtungen

Unbenanntvor 0 min.
ScanMaster03.07.2024
mene29.05.2024
Erasmus.Herold12.10.2023
Rolf Koch04.06.2022
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

Christof Neuß (4x)
Thomas Freier (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie