![]() |
HTML Quellcode auslesen
Ich mmöchte gerne den Quelltext von dem aktuell geöffnenten InternetExplorer Fenster einlesen - wie?!
|
Re: HTML Quellcode auslesen
rechtsklick->Quelltext anzeigen ;)
|
Re: HTML Quellcode auslesen
Ha ho - scherzkecks
Ich denke ich würde hier nicht posten wenn ich ihn so sehen möchte - natürlich möchte ich diesen in meinem Programm weiterverarbeiten |
Re: HTML Quellcode auslesen
dann hol dir den Quelltext per TIdHttp.Get(); oder öffne das ganze im TWebBrowser und lies dir da den Quelltext aus.. was du dann weiterverarbeitest überlasse ich dir ;)
|
Re: HTML Quellcode auslesen
Das geht nicht es MUSS das aktuelle offene Fenster sein und es muss daraus gelesen werden!
Das mit dem TIdHttp.Get hab ich schon versucht dadurch wird aber eine neue ID von der Website erzeugt und habe KEINEN Zugriff mehr auf den eigendlichen Inhalt! |
Re: HTML Quellcode auslesen
Mit folgenden Funktionen kannst du HTML aus dem WebBrowser-Objekt setzen oder auslesen.
Die Funktionen Document_SetHTML und Document_GetHTML gibt es deshalb, weil es bei Webseiten mit Frames ja mehrere "Documents" gibt.
Delphi-Quellcode:
uses Windows, Classes, Forms, ActiveX, ComObj, SysUtils, SHDocVw;
procedure Document_SetHTML(Document: IDispatch; const HTMLCode: string); var ms: TStringStream; begin if Assigned(Document) then begin ms := TStringStream.Create(HTMLCode); try ms.Seek(0, 0); OleCheck((Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms))); finally ms.Free; end; end; end; function Document_GetHTML(Document: IDispatch):string; var ms: TStringStream; begin Result := ''; if Assigned(Document) then begin ms := TStringStream.Create(Result); try OleCheck((Document as IPersistStreamInit).Save(TStreamAdapter.Create(ms),False)); Result := ms.DataString; finally ms.Free; end; end; end; procedure WB_SetHTML(WebBrowser: TWebBrowser; const HTMLCode: string); begin if not Assigned(WebBrowser.Document) then WebBrowser.Navigate('about:blank'); while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do Application.ProcessMessages; Document_SetHTML(WebBrowser.Document, HTMLCode); end; function WB_GetHTML(WebBrowser: TWebBrowser): string; begin Result := Document_GetHTML(WebBrowser.Document); end; |
Re: HTML Quellcode auslesen
hmm und wie erhalte ich nun vom aktiven Fenster die daten?
|
Re: HTML Quellcode auslesen
Zitat:
Delphi-Quellcode:
Eigentlich ganz einfach, oder ?
var
htlm_code:string; begin htlm_code := WB_GetHTML(WebBrowser1); |
Re: HTML Quellcode auslesen
dachte ich mir schon NUR gibt es bei mir kein "WebBrowser1"...
Du hast wohl überlesen, das ich den IE an sich meine KEIN Webbrowser in MEINER Anwendung! Zitat :"geöffnenten InternetExplorer Fenster einlesen - wie?!" Danek dir aber für Deine Mühe |
Re: HTML Quellcode auslesen
Zitat:
Hier ein Beispiel Codeschnippsel:
Delphi-Quellcode:
Dann musst du prüfen, ob überhaupt HTML geladen ist.:
var
sws : IShellWindows; sw : IDispatch; i : Integer; wb : IWebBrowser2; begin sws := CoShellWindows.Create; // Schleife über alle offenen IE-Browser for i := 0 to sws.Count-1 do begin sw := sws.Item(i); wb := sw as IWebBrowser2; Memo1.Lines.Add(wb.LocationURL); if (Copy(wb.LocationURL, 1, 5) = 'http:') and wb.Visible then begin Memo1.Lines.Add('========HTML==========='); Memo1.Lines.Add(Document_GetHTML(wb.Document)); end; end; end; wb.LocationURL muss mit http: oder https: beginnen. |
Re: HTML Quellcode auslesen
Diesen Code hatte ich heute schonmal! Aber wieder entfernt, da er mir von ALLEN Anwenungen die InternetExplorer Fenster verwenden den HTML Code gibt - selbst von so ner anwendung wie Steam oder Hilfe Dateien
Dabei ist aber mein Problem das NUR das Aktuelle zu sehende Fenter den Code zu bekommen Habe schon an sowas gedacht
Delphi-Quellcode:
Aber davon könnte ich auch mehrere haben dann ist es wieder hinfällig
if WB.LocationName = 'Das Web' then
|
Re: HTML Quellcode auslesen
Zitat:
Wenn man statt IWebBrowser das Interface IWebBrowser2 verwendet, dann bekommt man einige zusätzliche Properties, die man abfragen kann. Besonders nützlich ist wb.HWND - das Window-Handle. |
Re: HTML Quellcode auslesen
Es gibt leider keinen unterschied in den Seiten...
Hmm ;-( Hmm aber eventuell hab ich gerade ne Idee das anhand der URL zu prüfen! |
Re: HTML Quellcode auslesen
Frage:
Wenn du das in deinem Programm machst.. dann ist doch dein Program aktiv und nicht der IE, also wie willst du dann das aktive IE-Fenster ermitteln? Ansonsten denk ich gab es irgendwo ne Methode um das Handle des momentan aktiven Fensters zu ermitteln. |
Re: HTML Quellcode auslesen
Nein mein Programm schlummert in der TNA und das ganze geht dann per Timer
|
Re: HTML Quellcode auslesen
und was soll das machen? Emailadressen für en Spamverteiler auslesen? :shock:
|
Re: HTML Quellcode auslesen
Nein - Emails lesen
|
Re: HTML Quellcode auslesen
Uffff. Jetzt hab ich dich doch 2cm vor die Lösung gesetzt.
Also mit GetForegroundWindow holst du das Handle des Windows, dass den Focus hat und dann vergleichen:
Delphi-Quellcode:
Am Besten die Funktion GetForegroundWindow ausserhalb der Schleife aufrufen und in lokale Variable packen.
if (Copy(wb.LocationURL, 1, 5) = 'http:') and wb.Visible and (wb.Hwnd=GetForegroundWindow)then
begin Memo1.Lines.Add('========HTML==========='); Memo1.Lines.Add(Document_GetHTML(wb.Document)); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:41 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-2025 by Thomas Breitkreuz