AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung Text einer Internetseite in Memo einlesen
Thema durchsuchen
Ansicht
Themen-Optionen

Text einer Internetseite in Memo einlesen

Ein Thema von Rued · begonnen am 21. Mär 2025 · letzter Beitrag vom 25. Mär 2025
Antwort Antwort
Benutzerbild von Rued
Rued

Registriert seit: 14. Mai 2008
Ort: Schleching
108 Beiträge
 
Delphi 12 Athens
 
#1

AW: Text einer Internetseite in Memo einlesen

  Alt 22. Mär 2025, 13:29
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?
Rüdiger Droste
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Text einer Internetseite in Memo einlesen

  Alt 22. Mär 2025, 14:57
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?
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Rued
Rued

Registriert seit: 14. Mai 2008
Ort: Schleching
108 Beiträge
 
Delphi 12 Athens
 
#3

AW: Text einer Internetseite in Memo einlesen

  Alt 22. Mär 2025, 15:22
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 ?
Rüdiger Droste
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.123 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Text einer Internetseite in Memo einlesen

  Alt 22. Mär 2025, 15:32
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Rued
Rued

Registriert seit: 14. Mai 2008
Ort: Schleching
108 Beiträge
 
Delphi 12 Athens
 
#5

AW: Text einer Internetseite in Memo einlesen

  Alt 22. Mär 2025, 16:59
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.
Das hatte ich mir angesehen und vielleicht verstehe ich auch "LDOC.Content := Clipboard.AsText;" falsch. Das sieht für mich so aus, als würde der Code mit der Zwischenablage gefüttert, die für mich das Ziel der Bemühungen ist. Zudem muss ich keine tags identifizieren.

Ich bringe es mal auf den Punkt: Ich will den Text dieser Seite in ein Memo-Feld bekommen, um Spielergebnisse auslesen zu können.
Rüdiger Droste
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.123 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Text einer Internetseite in Memo einlesen

  Alt 22. Mär 2025, 17:39
Stimmt, mein Fehler.
Man braucht eine Datei mit dem gesamten HTML Dokument.
Der Download der Webadresse ist nicht enthalten.
Inwieweit die Indys plattformübergreifend funktionieren, weiss ich leider nicht.
Damit hatte ich schon Downloads gemacht.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Text einer Internetseite in Memo einlesen

  Alt 22. Mär 2025, 19:35
Ich bringe es mal auf den Punkt: Ich will den Text dieser Seite in ein Memo-Feld bekommen, um Spielergebnisse auslesen zu können.
Aber du hast doch eingangs dies geschrieben:
Wie bekomme ich den Text einer Internetseite, die über JavaScript generiert wurde, in ein Memo-Feld - wenn möglich ohne die WebBrowser-Komponente?
Die genannte Webseite liefert aber den kompletten Inhalt ganz ohne Skripte aus. Da brauchst du keine Browserfunktionalität, sondern kannst die Webseite direkt herunterladen...

Also kannst du einfach TNetHTTPClient.Get verwenden:
https://docwiki.embarcadero.com/Libr...HTTPClient.Get
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
fisipjm

Registriert seit: 28. Okt 2013
331 Beiträge
 
Delphi 12 Athens
 
#8

AW: Text einer Internetseite in Memo einlesen

  Alt 22. Mär 2025, 21:21
Ich bringe es mal auf den Punkt: Ich will den Text dieser Seite in ein Memo-Feld bekommen, um Spielergebnisse auslesen zu können.
Aber du hast doch eingangs dies geschrieben:
Wie bekomme ich den Text einer Internetseite, die über JavaScript generiert wurde, in ein Memo-Feld - wenn möglich ohne die WebBrowser-Komponente?
Die genannte Webseite liefert aber den kompletten Inhalt ganz ohne Skripte aus. Da brauchst du keine Browserfunktionalität, sondern kannst die Webseite direkt herunterladen...

Also kannst du einfach TNetHTTPClient.Get verwenden:
https://docwiki.embarcadero.com/Libr...HTTPClient.Get
Ich denke mal es geht ihm darum das er nur den Text bekommt, also nicht das HTML sondern nur den fertig geparsten Text.
  Mit Zitat antworten Zitat
Benutzerbild von Rued
Rued

Registriert seit: 14. Mai 2008
Ort: Schleching
108 Beiträge
 
Delphi 12 Athens
 
#9

AW: Text einer Internetseite in Memo einlesen

  Alt 22. Mär 2025, 22:44
Wenn ich
Memo4.text:= NetHTTPClient1.get('https://m.flashscore.de/?d=0').ContentAsString; starte bekomme ich Html, ausschnittsweise...
Code:
<!DOCTYPE html>
<html lang="de">
    <head>
        <meta charset="utf-8">
        <title>Livescore Mobile - Fussball auf Flashscore.de Mobil</title>
        <meta name="description" content="Verfolge die akttuellen fussball Ergebnisse wenn du unterwegs bist mit der für Mobilgeräte optimierten Version von Flashscore.de.">
        <meta name="copyright" content="Copyright (c) 2006-2025 Livesport s.r.o.">
        <meta name="robots" content="noindex,nofollow" />
        <meta name="viewport" content="width=device-width, initial-scale=1">
       <meta property="og:title" content="Livescore Mobile - Fussball auf Flashscore.de Mobil">
       <meta property="og:description" content="Verfolge die akttuellen fussball Ergebnisse wenn du unterwegs bist mit der für Mobilgeräte optimierten Version von Flashscore.de.">
       <meta property="og:type" content="website">
       <meta property="og:url" content="http://www.flashscore.de/?d=0">
       <meta property="og:image" content="https://m.flashscore.de/">
            <link rel="shortcut icon" href="https://static.flashscore.com/res/_fs/image/4_favicons/_fs/favicon.ico?v=8">
            <link rel="apple-touch-icon" sizes="180x180" href="https://static.flashscore.com/res/_fs/image/4_favicons/_mobi/touch-icon-180x180.png?v=8">
            <link rel="icon" type="image/png" sizes="32x32" href="https://static.flashscore.com/res/_fs/image/4_favicons/_mobi/favicon-32x32.png?v=8">
            <link rel="icon" type="image/png" sizes="16x16" href="https://static.flashscore.com/res/_fs/image/4_favicons/_mobi/favicon-16x16.png?v=8">
        <link rel="manifest" href="/manifest/1/?v=7">
        <meta name="theme-color" content="#001e28">
        <link rel="stylesheet" href="https://static.flashscore.com/x/css/layout_304_1433000000.css">
        <link rel="stylesheet" href="https://static.flashscore.com/res/styles/container.304.css">
        <link rel="stylesheet" href="https://static.flashscore.com/res/styles/container.0.css">
        <script type="text/javascript" defer src="https://static.flashscore.com/res/_fs/build-mobi/programaticStrip.ba5d2c6.js"></script>
        <script type="text/javascript" src="https://static.flashscore.com/res/_fs/build-mobi/mobiRuntime.2d4cf7d.js"></script>
        <script type="text/javascript" src="https://static.flashscore.com/res/_fs/build-mobi/autorefresh.0b1d793.js"></script>
        <script type="text/javascript">
            // <![CDATA[
            // ]]>
        </script>
    </head>
<body class="m.Flashscore.de mobi brand--flashscore">
<div id="top"></div><div class="logo"><a href="/"><img src="https://static.flashscore.com/res/_mobi/image/logo/flashscore.png?v=2" alt="m.Flashscore.de" /></a></div>
<div id="main" class="soccer">
<p class="p-set menu"><a href="/" class="active">Fussball</a> | <a href="/eishockey/">Eishockey</a> | <a href="/tennis/">Tennis</a> | <a href="/basketball/">Basketball</a> | <a href="/handball/">Handball</a> | <a href="/volleyball/">Volleyball</a> | <a href="/baseball/">Baseball</a> | <a href="/football/">Am. Football</a> | <a href="/rugby/">Rugby</a> | <a href="/andere-sportarten/">Mehr&nbsp;&raquo;</a></p><p class="p-set menu">
...
Kopiere ich gleichzeitig den von mir gewünschten Text der Seite, erhalte ich ausschnittsweise...
Code:
Fussball | Eishockey | Tennis | Basketball | Handball | Volleyball | Baseball | Am. Football | Rugby | Mehr »

Heute | Gestern | Morgen | Weitere Tage »

Alle Spiele | LIVE | Beendete | Quoten

Auto-refresh (30s) | EINSCHALTEN | JETZT AKTUALISIEREN

Fussball » Heute » Alle Spiele
Sportwetten jetzt auch von Ihrem Mobiltelefon aus. Mit bet365!

AFRIKA: Weltmeisterschaft - Qualifikation Tabelle
15:00AbgesagtKongo - Sambia -:-
15:00AbgesagtNiger - Eritrea -:-
17:00Togo - Mauretanien 2:2
20:00Sudan - Senegal 0:0
EUROPA: Weltmeisterschaft - Qualifikation Tabelle
15:00Liechtenstein - Nordmazedonien 0:3
18:00Moldawien - Norwegen 0:5
18:00Montenegro - Gibraltar 3:1
88'Israel - Estland 2:1
90+'Tschechien - Färöer Inseln 2:1
90'Wales - Kasachstan 2:1
SÜDAMERIKA: Weltmeisterschaft - Qualifikation Tabelle
00:30Uruguay - Argentinien 0:1
ÄGYPTEN: Division 2 A Tabelle
20:30Abu Qir Semad - Al-Sekka 0:0
90+'Aswan SC - WE SC 1:0
90+'Dayrout - Asyut Petroleum 0:2
Warten auf
UpdatesEl Mansoura - Alexandria SC 1:0
90+'La Viena - Kahrabaa Ismailia 0:2
87'Proxy - Arab Contractors 0:2
90+'Suez SC - Baladiyat El Mahalla 0:1
90+'Tanta - Tersana 1:0
90+'Wadi Degla - Al Qanah 2:1
...
Rüdiger Droste
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Text einer Internetseite in Memo einlesen

  Alt 22. Mär 2025, 22:53
Zum Parsen der Seite kannst du Christians Klasse verwenden. Oder du nimmst einfach Regular Expressions, denn das Format ist ja sehr überschaubar.

Wenn du aus dem Browser markierst und kopierst, bekommst du ja nur den Text. Das ist zwar für einen Menschen gut lesbar, aber um es verarbeiten zu können, fehlen alle Elementdefinitionen. Darum kann man damit zum Verarbeiten wenig anfangen. Da musst du ja wissen, wo ein Element anfängt und wo es endet.
Sebastian Jänicke
AppCentral
  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 00:07 Uhr.
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