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
vor 22 Tagen  
 




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$="http://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: vor 21 Tagen
Ladeanzahl2
Herunterladen
5 kB
Hochgeladen: vor 21 Tagen
Ladeanzahl2
Herunterladen
 
Gruß Thomas
Windows XP SP2, XProfan X2
vor 21 Tagen  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

106 Betrachtungen

Unbenanntvor 0 min.
R.Schneider vor 4 Tagen
Pedro Miguel vor 11 Tagen
Wilfried Friebe vor 12 Tagen
Jörg Sellmeyer vor 15 Tagen
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

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


AGB  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Impressum  |  Mart  |  Support  |  Suche

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