Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Webbrowser Quellcode auslesen (https://www.delphipraxis.net/95947-webbrowser-quellcode-auslesen.html)

Digielm 16. Jul 2007 14:11


Webbrowser Quellcode auslesen
 
Hallo an alle

Habe ein Problem ich möchte einen Webbrowser den Quellcode kompl. auslesen.

Mit innerHTML oder OuterHMTL hab ich das schon probiert bekomme aber dabei nur den Body und nicht das <DOC>

Hab hier auch schon einiges probiert aber hab das Problem bei den hilfen ich bekomme den Source dann nicht als Cleartext in einem Memo angezeigt

Wer hilft mir

Testy 16. Jul 2007 14:27

Re: Webbrowser Quellcode auslesen
 
Hi Digielm,

wenn ich dich richtig verstanden habe, dann versuchst du mit dem Webbrowser den Quelltext in ein Memo zu lesen!?
Versuchs mal hiermit:
Delphi-Quellcode:
function WB_GetHTMLCode(WebBrowser: TWebBrowser; ACode: TStrings): Boolean;
var
  ps: IPersistStreamInit;
  ss: TStringStream;
  sa: IStream;
  s: string;
begin
  ps := WebBrowser.Document as IPersistStreamInit;
  s := '';
  ss := TStringStream.Create(s);
  try
    sa := TStreamAdapter.Create(ss, soReference) as IStream;
    Result := Succeeded(ps.Save(sa, True));
    if Result then ACode.Add(ss.Datastring);
  finally
    ss.Free;
  end;
end;
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
WB_GetHTMLCode(Webbrowser1, Memo1.Lines);
end;
So geht's bei mir...

Viel Spaß damit!

Gruß!

Digielm 16. Jul 2007 14:42

Re: Webbrowser Quellcode auslesen
 
hab ich schon probiert bekomme aber im memo nur yq> angezeigt

marabu 16. Jul 2007 15:25

Re: Webbrowser Quellcode auslesen
 
Hallo,

vor der Zuweisung an die StringList musst du den Text noch von Unicode nach Ansi umwandeln. Hier noch ein Link zum Thema: twebbrowserdocument in variable sichern

Grüße vom marabu

Digielm 16. Jul 2007 15:39

Re: Webbrowser Quellcode auslesen
 
hab mit dem Link nicht wirklich was anfangen können. wie wandel ich das denn dann um ??

marabu 16. Jul 2007 16:09

Re: Webbrowser Quellcode auslesen
 
Hallo,

je nachdem wie der Server die Seite im HTTP-Header ankündigt, musst du WideString() oder Utf8ToAnsi() auf ss.DataString anwenden.

Freundliche Grüße

Digielm 17. Jul 2007 09:23

Re: Webbrowser Quellcode auslesen
 
klappt leider immernoch nicht.

Wenn ich den Inhalt nach dem Link in eine Datei sprich TXT exportiere klappt es.

Komme da nicht so ganz mit warum das eine klappt und nicht das andere.

gugelhupf 17. Jul 2007 09:26

Re: Webbrowser Quellcode auslesen
 
Delphi-Quellcode:
function GetSource: String;
begin
  Result := WebBrowser.OleObject.Document.Body.InnerHtml;
end;
Das haste auch schon probiert?

Digielm 17. Jul 2007 11:20

Re: Webbrowser Quellcode auslesen
 
Das reicht mir nicht brauche das ganze dokument

Aber mal ne andere Frage ich hab da richtig probleme Sorry leute

versuche mit dem DIHtmlParser das zu machen. Wenn ich das Demo aufrufe klappt das super.

Nur wie kiege ich das dann hin wenn ich den Webbrowserinhalt über einen String o.ä. übertragen will.

Ich hab ein UTF16LE text der konvertiert werden muß

Ich nutze Delphi 5

Ydobon 17. Jul 2007 17:43

Re: Webbrowser Quellcode auslesen
 
Wenn ich mal den Code von Texty mit dem Tipp von marabu kombiniere, klappt es eigentlich recht gut.
Delphi-Quellcode:
if Result then ACode.Add(WideString(@ss.DataString[1]));


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:54 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