Ich möchte auf einer Börsenseite den sich alle paar Sekunden aktualisierenden Kurs einer Aktie auslesen.
So wie es aussieht ändert sich der
HTML-Code dieses Browserfensters aber irgendwie nicht.
Dann hilft IdHTTP GET auf das
HTML Dokument auch nicht - denn das liest auch immer den gleichen
HTML Code aus, so wie der Browser. Im Browser wird dann aber vermutlich JavaScript eingesetzt, um den Kurs nachzuladen und dynamisch im
DOM einzubauen.
Wenn das der Fall ist, muss man die vom JavaScript gesendeten Requests nachbauen. Wenn es sich um normale HTTP Requests handelt (z.B. Ajax), und nicht z.B. WebSockets, dann simuliert man dem Server einen normalen Client (Browser). Tools wie Firebug (für Firefox) helfen dabei, den richtigen HTTP Request zu erstellen. Falls die Webseite ein Login erwartet, können dabei verwendete Cookies über
Indy ebenfalls unterstütz werden.
Erster Schritt aber ist das Analysieren des
HTML Dokuments und des enthaltenen JavaScript, um die relevanten Requests zu finden.
p.s. ein auf
Indy basierendes Beispiel, wie Push über "Long Polling" und JavaScript mit
Indy serverseitig (!) realisiert werden kann, ist unter
How can I update HTML pages dynamically with Indy HTTP server using jQuery and “Long Polling”?. Der Delphi Sourcecode enthält auch ein
HTML Dokument mit dem eingebetten JavaScript.