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
r29d43

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

Push-Text aus WebBrowser auslesen

  Alt 5. Feb 2014, 17: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, 17: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 17:24 Uhr)
  Mit Zitat antworten Zitat
r29d43

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

AW: Push-Text aus WebBrowser auslesen

  Alt 6. Feb 2014, 11: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
mjustin

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

AW: Push-Text aus WebBrowser auslesen

  Alt 6. Feb 2014, 12: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
287 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Push-Text aus WebBrowser auslesen

  Alt 6. Feb 2014, 12: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.617 Beiträge
 
#6

AW: Push-Text aus WebBrowser auslesen

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

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

AW: Push-Text aus WebBrowser auslesen

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


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 16:16 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