Einzelnen Beitrag anzeigen

Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.909 Beiträge
 
Delphi 12 Athens
 
#5

AW: Text einer Internetseite in Memo einlesen

  Alt 23. Mär 2025, 07:52
Sorry, ich weiß nicht, wie oft ich es sagen soll... ICH WILL NUR DEN TEXT - und den gibt mir keiner!
Ich hatte das so verstanden, dass du das danach automatisch auswerten wolltest. Das erschwert du dir damit unnötig.

Ich würde dir sehr raten, auf den umständlichen Weg über den Webbrowser und das umständliche Auswerten des reinen Textes zu verzichten und den Download der Seite und den direkten Zugriff auf die Elemente zu nutzen.

Aber dein Weg ist sehr einfach, was das Auslesen des Textes angeht, nur eben mit viel Overhead:
In Javascript bekommst du das mit document.body.innerText, das du oben ja schon verwendet hast. Das kannst du dann mit EvaluateJavaScript auswerten, musst das dann aber auch zurückgeben und nicht in eine Variable schreiben. Du kannst das auch direkt bekommen, aber das ist relativ umständlich und funktioniert dann nur unter Android, deshalb zeige ich lieber einen einfachen Weg, auch wenn der nicht optimal ist.

Beispiel:
Delphi-Quellcode:
procedure TForm287.Button1Click(Sender: TObject);
begin
  WebBrowser1.Navigate('https://www.with-is-bad.de');
end;

procedure TForm287.Button2Click(Sender: TObject);
begin
  WebBrowser1.EvaluateJavaScript('document.location = "source://" + encodeURIComponent(document.documentElement.outerHTML);');
end;

procedure TForm287.WebBrowser1ShouldStartLoadWithRequest(ASender: TObject;
  const URL: string);
begin
  if URL.StartsWith('source://') then
  begin
    ShowMessage(TNetEncoding.URL.Decode(URL.Substring(9)));
    WebBrowser1.Stop;
  end;
end;
Ich habe mal zum Test einfach mit D6 und dessem TWebBrowser (Ja, der URALT IE)!
Das hat leider nichts mit dem Thema zu tun. Es geht um Android.
Sebastian Jänicke
AppCentral

Geändert von jaenicke (23. Mär 2025 um 07:58 Uhr)
  Mit Zitat antworten Zitat