Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi IE auslesen (https://www.delphipraxis.net/126566-ie-auslesen.html)

bigben37 28. Dez 2008 14:31

Re: IE auslesen
 
Such nach Quelltextzeilen, die einzigartig sind (z.B. id="besucherzähler") und in der Nähe deiner Zahl sind. Dann kannst du ja deine Zahl auslesen.
Nützliche Funktionen:
  • pos(): Gibt dir die Position eines Strings in einem Text zurück.
  • copy(): Kopiert Teile eines Strings

MFG Benjamin

Edit: Wieso war bei Toms kein roter Kasten :gruebel:

mkinzler 28. Dez 2008 14:32

Re: IE auslesen
 
Dann bleibt dir nichts anderes übrig, als die Html-Datei zu parsen

laggy 28. Dez 2008 14:36

Re: IE auslesen
 
ok ich werd es mal probieren

thx an alle

renekr 1. Feb 2009 12:52

Re: IE auslesen
 
Hi @,
ich bin soeben auch an diesem Problem dran,aber mit Get bekomme ich nur den Header ausgelesen.
Wie kann ich nun den Kompletten Quelltext der Seite auslesen ?


Vielen Dank.

Larsi 1. Feb 2009 14:39

Re: IE auslesen
 
Das Problem kenne ich. Du könntest mit TWebbrowser die Seite aufrufen und dann den quelltext auslesen.

renekr 1. Feb 2009 15:31

Re: IE auslesen
 
Hi,
Wie kan nes eigentlich sein das einige Seiten gehen also der reine Quelltext und andere nicht also nur den Head. ?

wie mach i das genau ?
Hab schon einige Funktionen gefunden aber da bekomme ich auch leider nur den Head aus dem Document raus.

Bin nun schon soweit das ich die links im webbrowser laden will und während dem laden mit tracent mit wincap !
aber das is oversize für das was ich will.

Ich will nur den Quelltext raus hoeln wo ich mit rechts klichk Quelltext auslesen im IE auch sehe.

das würde mir reichen.

danke

blink182 1. Feb 2009 17:13

Re: IE auslesen
 
hiho,
ich hab denke ich was, was dir hilft, weiß zwar nicht mehr woher genau ich das hab, ist auch nicht von mir. Hoffe das ist okay, wenn ich den Code jetzt hier poste:

Delphi-Quellcode:
uses ComObj,OleCtrls, SHDocVw_TLB,ActiveX,MSHTML_TLB; // kA ob ActiveX unbedingt dabei sein muss

var
 vIE : OleVariant;
 Memo2: TMemo;

// Internet Explorer Instanz wird erstellt und die Adresse in Edit1.text aufgerufen
procedure TForm1.Button2Click(Sender: TObject);
begin
vIE := CreateOleObject('InternetExplorer.Application');
vIE.visible:=true;
vIe.navigate(Edit1.text);
sleep(3000);
Button3.Click;
end;

// Quellcode holen
function GetHTMLCode(WB: IWebbrowser2; ACode: TStrings): Boolean;
var
 ps: IPersistStreamInit;
 s: string;
 ss: TStringStream;
 sa: IStream;
begin
 ps := WB.document as IPersistStreamInit;
 s := '';
 ss := TStringStream.Create(s);
 try
   sa:= TStreamAdapter.Create(ss, soReference) as IStream;
   Result := Succeeded(ps.Save(sa, Bool(True)));
   if Result then ACode.Add(ss.Datastring);
 finally
   ss.Free;
 end;
end;


// Das Aktuelle Internet Explorer Fenster wird gesucht

procedure TForm1.Button3Click(Sender: TObject);
var
 ShellWindow: IShellWindows;
 WB: IWebbrowser2;
 spDisp: IDispatch;
 IDoc1: IHTMLDocument2;
 k: Integer;
 s:string;
 a:integer;
begin
 Memo2.clear;
 ShellWindow := CoShellWindows.Create;
 // get the running instance of Internet Explorer
 for k := 0 to ShellWindow.Count do
 begin
   spDisp := ShellWindow.Item(k);
   if spDisp = nil then Continue;
   // QueryInterface determines if an interface can be used with an object
   spDisp.QueryInterface(iWebBrowser2, WB);
   if WB <> nil then
   begin
     WB.Document.QueryInterface(IHTMLDocument2, iDoc1);
     if iDoc1 <> nil then
     begin
       WB := ShellWindow.Item(k) as IWebbrowser2;
       begin
         // Add HTML Code to Memo
         GetHTMLCode(WB, Memo2.Lines);
       end;
     end;
   end;
 end;
end;


// irgendwann dann den IE wieder schließen

vIE.quit;
hoffe das ist was du suchst und dann kannst du im Memo2 deine Parsing starten ;)

renekr 1. Feb 2009 18:11

Re: IE auslesen
 
Hi,
Danke,
aber leider ist egal was ich mache das iDoc immer nil .
nur wenn vorher schon ein IExplorer auf ist dann gings aber mit dem Code von dem anderen IE.

Aber es muss doch einen einfacheren Weg geben ?
Ich will ja nur den Quellcode in voller länge haben .
Ohne IE Instanz und TWebbrowser öffnen zu müssen.

Vielen Dank

Klaus01 1. Feb 2009 18:16

Re: IE auslesen
 
Guten Abend,

hast Du schon getHTML ausprobiert?

Grüße
Klaus

Meflin 1. Feb 2009 18:32

Re: IE auslesen
 
Zitat:

Zitat von renekr
ich bin soeben auch an diesem Problem dran,aber mit Get bekomme ich nur den Header ausgelesen.
Wie kann ich nun den Kompletten Quelltext der Seite auslesen

Du könntest mal versuchen, den User-Agent deiner IdHTTP-Instanz auf einen Browser einzustellen, also z.B.
Code:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 Uhr.
Seite 2 von 3     12 3      

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