Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Push-Text aus WebBrowser auslesen (https://www.delphipraxis.net/178962-push-text-aus-webbrowser-auslesen.html)

r29d43 5. Feb 2014 17:03

Push-Text aus WebBrowser auslesen
 
Hallo

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. Wenigstens scheint der bei jedem neuen Auslesen immer wieder gleich zu sein.

Gibt es da event. irgendein spezielles Verfahren, da trotzdem einigermaßen einfach dranzukommen?

Zur Not könnte ich diese Seite natürlich auch alle paar Sekunde per IdHTTP-Dingens immer wieder neu laden. Dann hätte ich diesen gewünschten Text natürlich auch. Eventuell gibts aber doch was eleganteres???

Thx im Voraus

mjustin 5. Feb 2014 17:21

AW: Push-Text aus WebBrowser auslesen
 
Zitat:

Zitat von r29d43 (Beitrag 1246848)
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.

r29d43 6. Feb 2014 11:48

AW: Push-Text aus WebBrowser auslesen
 
Thx für den Link, da sehe ich gleich mal rein, obgleich ich mit Java bisher nicht übermäßig viel zu tun hatte, bzw. eigentlich auch garnichts :lol:

Zitat:

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.
Doch das sollte gehen, weil das IdHTTP ja immer wieder einen neuen HTML-Code mit den dann gerade gültigsten Werten empfängt. Während der Browser den HTML-Code nicht zu erneuern scheint, sondern nur die output-mäßigen Anzeigenbereiche, in denen diese Push-Daten ausgegeben werden.

Phoenix 6. Feb 2014 12:06

AW: Push-Text aus WebBrowser auslesen
 
Zitat:

Zitat von r29d43 (Beitrag 1246848)
Ich möchte auf einer Börsenseite den sich alle paar Sekunden aktualisierenden Kurs einer Aktie auslesen.

Welche Seite ist das denn? Ich kenne da ein paar 'von hinten' und weiss wie die funktionieren.

mjustin 6. Feb 2014 12:27

AW: Push-Text aus WebBrowser auslesen
 
Zitat:

Zitat von r29d43 (Beitrag 1246914)
Thx für den Link, da sehe ich gleich mal rein, obgleich ich mit Java bisher nicht übermäßig viel zu tun hatte, bzw. eigentlich auch garnichts :lol:

Zitat:

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.
Doch das sollte gehen, weil das IdHTTP ja immer wieder einen neuen HTML-Code mit den dann gerade gültigsten Werten empfängt. Während der Browser den HTML-Code nicht zu erneuern scheint, sondern nur die output-mäßigen Anzeigenbereiche, in denen diese Push-Daten ausgegeben werden.

Was sind diese "output-mäßigen Anzeigenbereiche" denn konkret? Frames oder iframes? Ohne den HTML Quelltext zu sehen kann man nur spekulieren - dass der Browser HTML Code sich nicht ändert, ist bei (äußeren) Frames und iframes normal.

r29d43 6. Feb 2014 12:48

AW: Push-Text aus WebBrowser auslesen
 
http://aktien.finanztreff.de/aktien_...000&exitPoint=

Es geht dabei um den Bereich "Kursdaten", in welchem die Aktienkurse immer wieder erneuert werden. Wohingegen der HTML-Text im Browsers aber konstant bleibt ...also auf dem Stand, zu dem ich die Seite ursprünglich aufgerufen habe.

Phoenix 6. Feb 2014 13:01

AW: Push-Text aus WebBrowser auslesen
 
Uh... erm.. die Nutzungsbedingungen dieser Seite schliessen automatische Tools grundsätzlich aus:

Zitat:

Zitat von http://www.finanztreff.de/pay_hilfe.htn?sektion=standardagb
Abruf von Inhalten

Inhalte dürfen von Ihnen nur in der Weise abgerufen werden, dass bei jedem Zugriff die gesamte Internetseite einschließlich der dort dargestellten Werbeanzeigen und sonstiger Inhalte vollständig auf Ihrem Rechner geladen wird, über den der Zugriff auf unsere Internetseiten erfolgt. Ein isolierter Abruf lediglich der Inhalte ist nicht zulässig. Sie verpflichtet sich, jeden diesen Nutzungsbedingungen nicht entsprechenden Zugriff zu unterlassen, insbesondere die Verwendung automatischer Kursabfrageprogramme.

Von daher solltest Du die Idee schnell wieder verwerfen. Auch wenn die Seite von unserer Konkurrenz ist... ;-)

Nichtsdestotrotz setzen die dem ersten Anschein nach ein kommerzielles Tool namens Lightstreamer ein. Das baut je nach Verfügbarkeit entweder eine WebSockets-Vrebindung auf oder macht einen Long-Running Request. Immer wenn Daten kommen, sucht sich das Javascript dann das entsprechende DOM-Element aus (die haben eine entsprechende ID mit ihrer WKN und zusätzlichen Informationen zum Feld (Welche Börse, Bid oder Ask)) und ersetzen einfach den Wert in dem Element.

Du könntest z.B. die Seite in einem IE aufmachen, und alle paar Sekunden den Inhalt dieses Elementes mit der entsprechenden ID auslesen und solltest immer den aktuellen Wert erhalten.

r29d43 6. Feb 2014 14:38

AW: Push-Text aus WebBrowser auslesen
 
@Phoenix, Thx auch für das Info über die Nutzungsbedingungen :pale:. Aber ob es überhaupt jemals je irgendeinen normalen User (nicht Mod-Profi) gab, der da auch tatsächlich mal reingesehen hat? Das ist doch wirklich mehr als unwahrscheinlich, oder? Kann doch im Grunde genommen auch keiner erwarten. Das machen die Seitenbetreiber wohl auch nur zum eigenen Schutz, für den Fall, dass tatsächlich mal irgendjemand einen diesbezüglich etwas größeren Unfug damit anstellen sollte. Was bei mir allerdings sicher nicht der Fall ist.

Event. noch zur Situation: Ich habe einen Börsenbrief abonniert, bei dem man so ein Musterdepot nachspielen kann. Angeblich sollen die Informationen zu einem jeweils neuen Aktien-Kauf ja immer so frühzeitig kommen, dass man die dann quasi zum gleichen Kurs um 9:00 morgens mitkaufen kann. Das Prob dabei ist allerdings, dass diese EMail von denen dann aber immer erst so kurz (5-10 Min) vor 9:00 Uhr beim Abonnement ankommt, dass die Zeit zu einem Trade mit denen gemeinsam kaum ausreicht ...bei all der Arbeit, die dazu noch zu tun ist. Als da wäre z.B. zuerst noch: Den Rechner hochfahren, diese EMail lesen, bei der Bank einloggen, Briefe mit Tans raushohlen u. u. u. letztlich auch noch das Verhältnis ausrechnen, mit dem die die neue Aktie zu ihrer Liquidität gekauft haben. Denn in diesem Verhältnis zu meiner eigenen Liquidität möchte ich diese neue Aktie natürlich dann auch kaufen. Und bzgl. dieser letzten Frage soll mich dieses Prog dann mal etwas unterstützen. Weil da geht es nämlich echt um nur wenige SEKUNDEN, die alles entscheiden :freak:


@mjustin,

du hattest übrigens doch Recht, die neuen Kurse finden sich doch im HTML-Code. Muss da wohl irgendwie ein minimales kleines bisschen vorbei geguckt haben. :roteyes:

Asche auf mein Haupt :|
(muss wohl irgendwie am aktuellen Börsenstress liegen :shock:)


[edit: Die Information über diesen Aktienkauf kriege ich über einen quasi SMS-Alarm, den ich bei GMX geschaltet habe, was mich aber nochmal wieder 1 Minute kostet]

Sir Rufo 6. Feb 2014 21:54

AW: Push-Text aus WebBrowser auslesen
 
Und weil du die nicht gelesen hast, musst du dich daran nicht halten?

Interessanter Standpunkt ... :roll:

PS: Auf die Idee, den Rechner schon um 08:45 automatisch zu starten oder einfach früher am Rechner zu sein und selber einschalten bist du schon gekommen?

r29d43 7. Feb 2014 00:13

AW: Push-Text aus WebBrowser auslesen
 
Zitat:

Zitat von Sir Rufo (Beitrag 1247028)
Und weil du die nicht gelesen hast, musst du dich daran nicht halten?

Bei so einer absoluten Minimalanwendung wie meiner, die obendrein nur selten läuft, kann man das wohl getrost ignorieren. Das auf sowas mit auszudehnen wäre doch wirklich nur die aller dämlichste Aufplusterei derenseits ..die ich denen einfach mal nicht unterstelle!

Zitat:

PS: Auf die Idee, den Rechner schon um 08:45 automatisch zu starten oder einfach früher am Rechner zu sein und selber einschalten bist du schon gekommen?
lohnt nicht, bei den +/- 2 Trades pro Quartal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz