AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Push-Text aus WebBrowser auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Push-Text aus WebBrowser auslesen

Ein Thema von r29d43 · begonnen am 5. Feb 2014 · letzter Beitrag vom 7. Feb 2014
Antwort Antwort
Seite 1 von 2  1 2      
r29d43

Registriert seit: 18. Jan 2007
289 Beiträge
 
Delphi 10.4 Sydney
 
#1

Push-Text aus WebBrowser auslesen

  Alt 5. Feb 2014, 18:03
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
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Push-Text aus WebBrowser auslesen

  Alt 5. Feb 2014, 18:21
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.
Michael Justin

Geändert von mjustin ( 5. Feb 2014 um 18:24 Uhr)
  Mit Zitat antworten Zitat
r29d43

Registriert seit: 18. Jan 2007
289 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Push-Text aus WebBrowser auslesen

  Alt 6. Feb 2014, 12:48
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

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.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#4

AW: Push-Text aus WebBrowser auslesen

  Alt 6. Feb 2014, 13:06
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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#5

AW: Push-Text aus WebBrowser auslesen

  Alt 6. Feb 2014, 13:27
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

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.
Michael Justin
  Mit Zitat antworten Zitat
r29d43

Registriert seit: 18. Jan 2007
289 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Push-Text aus WebBrowser auslesen

  Alt 6. Feb 2014, 13:48
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.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#7

AW: Push-Text aus WebBrowser auslesen

  Alt 6. Feb 2014, 14:01
Uh... erm.. die Nutzungsbedingungen dieser Seite schliessen automatische Tools grundsätzlich aus:

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.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
r29d43

Registriert seit: 18. Jan 2007
289 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Push-Text aus WebBrowser auslesen

  Alt 6. Feb 2014, 15:38
@Phoenix, Thx auch für das Info über die Nutzungsbedingungen . 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


@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.

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


[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]

Geändert von r29d43 ( 6. Feb 2014 um 15:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Push-Text aus WebBrowser auslesen

  Alt 6. Feb 2014, 22:54
Und weil du die nicht gelesen hast, musst du dich daran nicht halten?

Interessanter Standpunkt ...

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?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo ( 6. Feb 2014 um 22:57 Uhr)
  Mit Zitat antworten Zitat
r29d43

Registriert seit: 18. Jan 2007
289 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Push-Text aus WebBrowser auslesen

  Alt 7. Feb 2014, 01:13
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.

Geändert von r29d43 ( 7. Feb 2014 um 07:57 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 Uhr.
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