Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Text einer Internetseite in Memo einlesen (https://www.delphipraxis.net/216910-text-einer-internetseite-memo-einlesen.html)

Rued 21. Mär 2025 20:39

Text einer Internetseite in Memo einlesen
 
In meiner Android-App will ich eine Internetseite parsen, wie ich es in meinen PC-Anwendungen mache.

Leider funktioniert WebBrowser1.OleObject.document.body.innerText nicht.

Wie bekomme ich den Text einer Internetseite, die über JavaScript generiert wurde, in ein Memo-Feld - wenn möglich ohne die WebBrowser-Komponente?

jaenicke 21. Mär 2025 21:07

AW: Text einer Internetseite in Memo einlesen
 
Zitat:

Zitat von Rued (Beitrag 1547350)
Leider funktioniert WebBrowser1.OleObject.document.body.innerText nicht.

Das funktioniert nur mit dem alten Internet Explorer Control, das es auf anderen Plattformen logischerweise nicht gibt.

Zitat:

Zitat von Rued (Beitrag 1547350)
Wie bekomme ich den Text einer Internetseite, die über JavaScript generiert wurde, in ein Memo-Feld - wenn möglich ohne die WebBrowser-Komponente?

Du kannst TEdgeBrowser verwenden. Das sollte so ca. gehen:
Delphi-Quellcode:
EdgeBrowser.ExecuteScript('document.documentElement.outerHTML',
  ...
Ohne Browser kann es wegen JavaScript nicht gehen.

Sinnvoller ist aber, wenn du über eine API des Anbieters gehst bzw. diesen danach fragst.

Rued 21. Mär 2025 21:22

AW: Text einer Internetseite in Memo einlesen
 
Zitat:

Zitat von jaenicke (Beitrag 1547352)
...
Du kannst TEdgeBrowser verwenden.
...

TEdgeBrowser habe ich in der geräteübergreifenden Entwicklung nicht.

Christian Seehase 21. Mär 2025 21:34

AW: Text einer Internetseite in Memo einlesen
 
Moin Rüdiger,

vielleicht kannst Du hiermit Klasse HTMLDocument etwas anfangen.

jaenicke 21. Mär 2025 21:45

AW: Text einer Internetseite in Memo einlesen
 
Einfach herunterladen und parsen funktioniert aber mit JavaScript nicht.

Zum Browser:
Entschuldigung, es ist schon spät. Ich meinte FMX TWebBrowser und EvaluateJavaScript. Das sollte unter Android gehen.

Rued 21. Mär 2025 22:13

AW: Text einer Internetseite in Memo einlesen
 
Weiß nicht, wie es es umsetzbar ist, aber warum kann ich die Seite nicht im TWebBrowser laden, dort "alles markieren" und dann die Zwischenablage ins Memo laden?

Rued 22. Mär 2025 13:29

AW: Text einer Internetseite in Memo einlesen
 
Zitat:

Zitat von Christian Seehase (Beitrag 1547354)
Moin Rüdiger,

vielleicht kannst Du hiermit Klasse HTMLDocument etwas anfangen.

Da wird der Content aus der Zwischenablage bezogen. Wenn ich den Text der aufgerufenen Website erst einmal in der Zwischenablage habe, dann habe ich schon gewonnen. Denn dann habe ich ihn auch im Memo-Feld, in dem ich den Text durchsuchen kann. Mit irgendwelchen Tags habe ich dann nichts am Hut.

Daher noch einmal die Frage, wie komme ich an den Text einer im WebBrowser aufgerufenen Seite ohne OleObject, das ja im FMX.TWebBrowser nicht im Angebot ist?

jaenicke 22. Mär 2025 14:57

AW: Text einer Internetseite in Memo einlesen
 
Zitat:

Zitat von Rued (Beitrag 1547365)
Daher noch einmal die Frage, wie komme ich an den Text einer im WebBrowser aufgerufenen Seite ohne OleObject, das ja im FMX.TWebBrowser nicht im Angebot ist?

Funktioniert mit dem genannten EvaluateJavaScript etwas nicht?

Rued 22. Mär 2025 15:22

AW: Text einer Internetseite in Memo einlesen
 
Zitat:

Zitat von jaenicke (Beitrag 1547366)
Zitat:

Zitat von Rued (Beitrag 1547365)
Daher noch einmal die Frage, wie komme ich an den Text einer im WebBrowser aufgerufenen Seite ohne OleObject, das ja im FMX.TWebBrowser nicht im Angebot ist?

Funktioniert mit dem genannten EvaluateJavaScript etwas nicht?

Ich habe damit noch nicht gearbeitet:

Delphi-Quellcode:
var
  JS: string;
begin
   JS := 'var text = encodeURIComponent(document.body.innerText);' ;
  WebBrowser1.EvaluateJavaScript(JS);
Wie komme ich jetzt an text ?

Christian Seehase 22. Mär 2025 15:32

AW: Text einer Internetseite in Memo einlesen
 
Zitat:

Zitat von Rued (Beitrag 1547365)
Zitat:

Zitat von Christian Seehase (Beitrag 1547354)
Moin Rüdiger,

vielleicht kannst Du hiermit Klasse HTMLDocument etwas anfangen.

Da wird der Content aus der Zwischenablage bezogen. Wenn ich den Text der aufgerufenen Website erst einmal in der Zwischenablage habe, dann habe ich schon gewonnen. Denn dann habe ich ihn auch im Memo-Feld, in dem ich den Text durchsuchen kann. Mit irgendwelchen Tags habe ich dann nichts am Hut.

Daher noch einmal die Frage, wie komme ich an den Text einer im WebBrowser aufgerufenen Seite ohne OleObject, das ja im FMX.TWebBrowser nicht im Angebot ist?

Dann schau Dir mal das Beispiel im zweiten Beitrag von "Klasse HTMLDocument" an.
Da wird, u.a., der gesamte Content (Text) ausgelesen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 Uhr.
Seite 1 von 4  1 23     Letzte »    

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