Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
05.12.2002, 00:07
feigling



Ich habe folgendes Problem.
Ich möchte ein Programm schreiben, was den Text von einer Internetseite abgreift und mir dann erstmal einfach nur in ein Memo-Feld speichert. Soll heißen, mein Programm lädt die Internetseite und speichert dann alle Texte, die auf dem Browser dargestellt werden in nem Memo. Hört sich jetzt komisch an, ist aber einfach zu erklären.
Mein Programm soll so funktionieren, als ob ich jetzt den Internet Explorer geöffnet habe, dann alles markiere (Strg +A) und dann Strg +C drücke und das dann in ein Memofeld kopiere. Mehr soll das Programm nicht machen. Eine Internetseite in Delphi darstellen zu lassen kann man einfach mit der ActiveX WebBrowser Komponente machen.
Dazu importiere ich einfach die Komponente, mache die in meine Form und rufe dann z.B. eine URL so auf: WebBrowser1.Navigate('www.thewall.de');
Jetzt möchte ich, dass der ganze Text, der auf der HP ist, einfach in ein Memofeld gespeichert wird und da liegt mein Problem.
Das ganze scheint wohl irgendwie mit OleObjekten machbar zu sein, aber ich habe von sowas keine Ahnung. Ich habe ein bisschen im Internet gesucht und wenigstens schonmal Ansätze gefunden, z.B. wie man alle Links auf einer Website auflistet, allerdings funzt die Methode nicht bei PHP Websiten.

Quellcode:
for i:=0 to WebBrowser1.OleObject.Document.Links.length-1 do
  ListBox1.Items.Add (WebBrowser1.OleObject.Document.Links.Item(i));

Ich habe auch schon gefunden, wie man den Quelltext speichern kann, aber das nützt mir alles nix, weil der dann nur den Quelltext von der html Datei speichert und ich bräuchte eigentlich dann den Quelltext der PHP Datei :| Jedenfalls brauche ich irgendwie eine Möglichkeit, den Text, der auf der Internetseite steht auszulesen. Es ist nur der Text wichtig, also Links und Bilder etc sind total egal.
Ich habe jetzt ein paar Tage lang mit google gesucht, auf diversen Delphipages geguckt und so weiter.
ich hatte auch fast mal eine Lösung, aber ich konnte das nicht ausprobieren, weil ich kein Delphi 4 hatte, wo die spezielle Komponente dabei ist, die ich dafür brauchte :|
Ich wäre für jeden Tipp dankbar, also wenn sowas vielleicht jemand schon mal gemacht hat und mir sagen kann, wie ich einfach nur auf den Bildschirmtext zugreife =)
Schonmal im Vorraus vielen Dank.

--

zum Seitenanfang zum Seitenende Profil || Suche
001
05.12.2002, 13:34
hausi



Wie wärs, wenn du dir per NMHTTP (oder ähnlicher) Komponente den Source holst und alles, was in HTML-Tags ist, wegnimmst. Dann kannst du noch alles zwischen <a...> und </a> entfernen und du hast das gewünschte Resultat.

--

zum Seitenanfang zum Seitenende Profil || Suche
002
05.12.2002, 14:37
feigling



Jo, aber das Problem ist, ich habe kein NMHTTP in Delphi 5 :|
Die (Lösung), die ich im I-net gefunden hatte, wurde auch mit NMHTTP gemacht.
Ich habe schon versucht, diese Komponente irgendwo runterzuladen, habe aber nichts gefunden (mit google 10 oder 15 verschiedene Suchbegriffe zu NMHTTP ausprobiert) :|

--

zum Seitenanfang zum Seitenende Profil || Suche
003
05.12.2002, 16:06
[RMen]OneStone



Dann mach es mit Sockets selber, ist echt nicht so Schwer (-> RFC 2086).

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
004
05.12.2002, 23:50
hausi



TNMHTTP und TNMFTP sind eigentlich bei Delphi 5 dabei. Aber wie 1Stone schon sagte: Ist auch über Sockets nicht schwer...

--


Dieser Beitrag wurde am 05.12.2002 um 23:50 von Superhausi bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
06.12.2002, 00:04
feigling



Ok, ich werde mal gucken über Sockets =)
Naja, also bei Delphi 5 Standard ist das nicht dabei.
Jedenfalls sehe ich es nirgendwo :|

--


Dieser Beitrag wurde am 06.12.2002 um 00:05 von feigling bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
06.12.2002, 21:30
hausi



Aso... Hatte immer die Enterprise...

--

zum Seitenanfang zum Seitenende Profil || Suche
007
06.12.2002, 22:49
feigling



Jo, liegt denke ich mal daran.
Bei Standard liefern die ja "kaum" was an Komponenten mit :|

--

zum Seitenanfang zum Seitenende Profil || Suche
008
07.12.2002, 15:04
TheTinySteini



Zitat:

Ich habe auch schon gefunden, wie man den Quelltext speichern kann, aber das nützt mir alles nix, weil der dann nur den Quelltext von der html Datei speichert und ich bräuchte eigentlich dann den Quelltext der PHP Datei :|

An den Quelltext einer PHP Datei kommst du nicht ran, definitiv nicht, außer Apache oder IIS haben an der Stelle eine fatale Sicherheitslücke. Da der Quelltext der PHP-Datei schon serverseitig umgewandelt wird, bekommt der Browser gar nicht erst was anderes geliefert als den HTML-Quellcode - folglich kann er dir auch nichts anderes ausgeben.
Oder ist das gar nicht dein Problem?

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
009
07.12.2002, 15:27
feigling



Nein, das ist nicht mein Problem =)
Damit meinte ich, dass ich an den Quelltext einer HTML Datei gekommen bin.
Das ist mir schon klar, dass ich an den PHP Code nicht rankomme =)
Mein Problem ist, dass ich einfach nur den Text des Browsers (Webbrowswer Kompo) abgreifen will und den ganzen Text, der drauf angezeigt wird in ein Memo kopiert wird, also als ob ich in der Komponente ne URL aufrufe und dann alles auf der Seite markiere, dann in die Zwischenablage kopiere und wieder ins Memofeld reinfüge.
Aber ich weiß nicht, wie ich mit der Webbrowserkomponente direkt auf den Text zugreifen kann, der angezeigt wird.
Also mit dem Source der HP hat das nix zu tun.

€dit:
So, jetzt habe ich genau das, was ich haben wollte:
memo1.lines.add(WebBrowser1.OleObject.document.body.innerText);

Nochmal vielen Dank an alle, dir mir geholfen habe und speziellen Dank an ttt, dass er sich im Chat Zeit genommen hat und mir dann die richtige Lösung geben konnte :)))

--


Dieser Beitrag wurde am 07.12.2002 um 16:32 von feigling bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche