Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Text aus geladener Webseite aus TWebbrowser in Memo (nicht Quelltext!) (https://www.delphipraxis.net/196711-text-aus-geladener-webseite-aus-twebbrowser-memo-nicht-quelltext.html)

markusagb 11. Jun 2018 15:52

Text aus geladener Webseite aus TWebbrowser in Memo (nicht Quelltext!)
 
Hallo zusammen,

leider finde ich im Forum dazu keinen Eintrag, nur wie man den Quelltext aus TWebbrowser in ein Memo bekommt - das funktioniert.
Leider wird die Information die ich benötige im Quelltext nicht angezeigt, wohl aber im Webbrowser-Fenster.

Ich müsste also erst einmal in diesem Webbrowser Fenster die Textpassage finden (Anfang Text beginnt mit "Wetter" und ende Text beginnt mit "Morgen", das dazwischen benötige ich).
Wenn diese Textpassage gefunden wurde im Webbrowser (nicht Quelltext), dann müsste ich diese in ein Memo kopieren.

Habe schon viel ausprobiert, ich lande immer wieder beim Quelltext... der mir nichts bringt.

Könnte mir jemand helfen?

Danke schon mal!!

Markus

himitsu 11. Jun 2018 16:08

AW: Text aus geladener Webseite aus TWebbrowser in Memo (nicht Quelltext!)
 
Den offiziellen Weg gehen, denn das Parsen fremder Webseiten ist womöglich garnicht erlaubt.

Viele Webseiten bieten Schnittstellen z.B. via SOAP oder REST an, wo im XML oder JSON dann alles in einem definierten Format zu finden ist.


Beispiel: https://www.delphipraxis.net/externa...S2&forumids=40

markusagb 11. Jun 2018 16:13

AW: Text aus geladener Webseite aus TWebbrowser in Memo (nicht Quelltext!)
 
Danke für die schnelle Nachricht! Müsste ich zwar nicht schreiben, aber die Wetterdaten bekommen wir derzeit immer per Mail - sehr umständlich, deshalb wollen wir diese ja auslesen. Erlaubnis habe ich dazu.

Markus

Ps: Dein Link funktioniert leider nicht

freimatz 11. Jun 2018 17:12

AW: Text aus geladener Webseite aus TWebbrowser in Memo (nicht Quelltext!)
 
Irgendwie verstehe ich nur Bahnhof. Wie kann ein WebBrowser etwas anzeigen das nicht im Quelltext steht? Ist das nicht der HTML-Quelltext? Woher soll dann die Anzeige kommen? Oder wird das etwas dynamisch nachgeladen? Dann kann es wohl kaum in einer Mail stehen.

markusagb 11. Jun 2018 17:21

AW: Text aus geladener Webseite aus TWebbrowser in Memo (nicht Quelltext!)
 
Lustig, Fragen auf ne Frage zu bekommen...

Der Quelltext beinhaltet nicht die Information die im TWebbrowser angezeigt wird, evtl. dynamische Daten die geladen werden. Deshalb ja das Auslesen aus dem angezeigten Text.

Es geht um den Inhalt der Seite den wir automatisiert auslesen und in unser System einlesen wollen, derzeit bekommen wir das von unserem Anbieter per Mail das wir manuell einpflegen müssen. Leider hat unser Anbieter keine Api und auch sonst keine Ahnung...

Danke an alle die konstruktive Beiträge posten, ich denke ich habe es verständlich ausgedrückt. Profis dürften verstehen was ich benötige.

HolgerX 11. Jun 2018 18:12

AW: Text aus geladener Webseite aus TWebbrowser in Memo (nicht Quelltext!)
 
Hmm...

Text aus Webbrowser...

https://www.delphipraxis.net/3547-te...-auslesen.html

Klappt dass nicht?

markusagb 11. Jun 2018 18:15

AW: Text aus geladener Webseite aus TWebbrowser in Memo (nicht Quelltext!)
 
Hallo lieber Holger,
das hatte ich als erstes versucht, aber da steht es auch nicht drin
"aText := Browser.OleObject.Document.Body.InnerText"
Ich glaube diese Funktion baut nur den Quellcode um...
Scheint schwieriger zu werden als gedacht...

Delphi.Narium 11. Jun 2018 18:58

AW: Text aus geladener Webseite aus TWebbrowser in Memo (nicht Quelltext!)
 
Zwischenablage nutzen, ungetestet ungefähr sowas:
Delphi-Quellcode:
procedure WebbrowserTextKopieren(Sender: TObject);
Var
  i : Integer;
begin
  Webbrowser.ExecWB(OLECMDID_SELECTALL,OLECMDEXECOPT_DODEFAULT);
  Webbrowser.ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DODEFAULT);
  Webbrowser.ExecWB(OLECMDID_CLEARSELECTION,OLECMDEXECOPT_DODEFAULT);
  Memo.PasteFromClipboard;
  // Hier dann im Memo die tatsächlich benötigte Textpassage
  // zwischen Wetter und Morgen suchen.
  i := Pos('Wetter',Memo.Text);
  if i > 0 then Memo.Text := Copy(Memo.Text,i + 6,Length(Memo.Text));
  i := Pos('Morgen',Memo.Text);
  if i > 0 then Memo.Text := Copy(Memo.Text,1,i - 1);
end;

markusagb 11. Jun 2018 19:07

AW: Text aus geladener Webseite aus TWebbrowser in Memo (nicht Quelltext!)
 
Danke, das sieht gut aus, ich teste es gleich mal!
Super!! :-)

markusagb 11. Jun 2018 19:14

AW: Text aus geladener Webseite aus TWebbrowser in Memo (nicht Quelltext!)
 
Also, selbst damit müsste er ja "alles" ins clipboard holen, tut er aber nicht:

Webbrowser6.ExecWB(OLECMDID_SELECTALL,OLECMDEXECOP T_DODEFAULT);
Webbrowser6.ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DOD EFAULT);
Webbrowser6.ExecWB(OLECMDID_CLEARSELECTION,OLECMDE XECOPT_DODEFAULT);
Memo1.PasteFromClipboard;



Ich habe dann ergänzt:

initialization
OleInitialize(nil);

finalization
OleUninitialize;


Kann manuell aus dem clipboard raus kopieren, aber nicht mit dem code :-(

Habe nun dem Webbrowser den Fokus gegeben mit Webbrowser6.OleObject.Document.body.focus aber das Memo ist leer mit ca. 20 Zeilen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:12 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