AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Webbrowser quelltext auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Webbrowser quelltext auslesen

Ein Thema von Digielm · begonnen am 8. Aug 2007 · letzter Beitrag vom 11. Aug 2007
Antwort Antwort
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#1

Webbrowser quelltext auslesen

  Alt 8. Aug 2007, 07:14
Delphi-Quellcode:
     myDocument:=webbrowser1.Document;
     browsertext := htmtext + myDocument.body.outerhtml+'</html>' ;
so lese ich den Browsertext aus habe aber damit ein Problem wenn sich z.b. noch Styles in dem Dokument befinden.

Wie bekomme ich die denn dann auch noch raus ??
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Webbrowser quelltext auslesen

  Alt 8. Aug 2007, 07:30
Du solltest das auslesen mittels DOM durchführen. Dazu steht dir die Unit Hier im Forum suchenMSHTML zur verfügung mit welcher du den Quelltext auch als HTML-Objektbaum auslesen kannst und auch verwendete CSS/JS/...-Dateien einfach erkennen kannst.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Webbrowser quelltext auslesen

  Alt 8. Aug 2007, 09:03
Hallo,

einfacher als über das HTML-DOM kann man das geladene Dokument über die IPersistStream-Schnittstellen auslesen, die von fast allen MS-Komponenten unterstützt werden. Die Prozedur DocToStrings() liefert den HTML-Quelltext als StringList, aber auch die Rückgabe als String sollte mit ein paar minimalen Änderungen kein Problem darstellen:

Delphi-Quellcode:
function DocToString(doc: IDispatch): string;
var
  ps: IPersistStreamInit;
  sa: IStream;
  s: TStringStream;
begin
  if Succeeded(doc.QueryInterface(IPersistStreamInit, ps)) then
  begin
    s := TStringStream.Create('');
    sa := TStreamAdapter.Create(s, soReference) as IStream;
    if Succeeded(ps.Save(sa, True))
      then Result := s.DataString
      else Result := '';
    s.Free;
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: Webbrowser quelltext auslesen

  Alt 10. Aug 2007, 14:20
Ja die Routine kenne ich aber hab das Problem das das dann im UTF 16 Format ist und ich das nicht unter delpi 5 nicht sauber angezeigt bekomme
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Webbrowser quelltext auslesen

  Alt 10. Aug 2007, 14:43
Hallo,

die gezeigte Funktion arbeitet mit ANSI-kodierten Dokumenten. Wenn der Server dir anders kodierte Daten übermittelt, dann musst du einfach die unbedingte Zuweisung an Result durch eine bedingte ersetzen. WideStrings (UTF-16) sind ja leicht zu erkennen bzw. umzuwandeln und der Rest kann einfach mit Utf8ToAnsi() konvertiert werden. Wenn du nicht zurecht kommst, dann beschreibe mal genau, wo es hakt.

Freundliche Grüße
  Mit Zitat antworten Zitat
Digielm

Registriert seit: 2. Aug 2006
246 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: Webbrowser quelltext auslesen

  Alt 11. Aug 2007, 16:59
Ich habe die Funktion in Delphi 5 leider nicht drin um diese dann so zu konvertieren
  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 20:53 Uhr.
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