Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi TWebBrowser Sourcecode auslesen (https://www.delphipraxis.net/66794-twebbrowser-sourcecode-auslesen.html)

Sven Janssen 4. Apr 2006 13:10


TWebBrowser Sourcecode auslesen
 
Moin,

ich tüftel hier schon ne stunde herum um an den Sourcecode einer HTML Datei aus der ActiveX Komponenten TWebBrowser zu laden. Ich haber mir schon die MS Doku http://msdn.microsoft.com/workshop/b.../document2.asp durchgelesen habe aber das Problem das ich nur an den gerenderten HTML Code komme. Entweder mit HTML Tags innerHTML oder unformatiert innerText.
Das Problem ist, das ich eine XML Datei von einem Intranet/Internet Server herunterladen muss und wirklich an den Original XML Code kommen muss. Der XML Code selber wird durch eine HTTP Anfrage generiert. Nun ist der IE (TWebBrowser ) so clever und bereitet den XML Code für die Anzeige auf. Nur leider kann ich damit dann nichts mehr anfangen.

Übel des ganzen Problems ist, das meine Anfrage an den Intranet Server nicht direkt gestellt wird, sondern durch Proxy, Ben-Hur und weiß der Geier was umgeleitet wird. In meinem Prototypen setze ich auf die Indy Komponente http auf, die allerdings damit große Probleme hat ( Anfrage geht an den Apache vom Intranet Server, kommt aber nicht zurück ).
Da der IE auf den Maschinen allerdings 1a den XML Code vom Server läd, dachte ich das ich diesen eben mit ins Boot hole und darauf im Problemfall ausweichen kann.
Ich muss jetzt nur noch an den Sourcecode der XML Datei kommen

Ich habe im Netz nun allerhand gelesen, allerdings nur wie ich HTML in und nicht aus dem TWebBrowser lade.
Hoffe mir kann jemand helfen, sonst muss ich meinen Parser umschreiben.

Sven
PS : Nutze Delphi 6

JonnyGuitar 4. Apr 2006 13:24

Re: TWebBrowser Sourcecode auslesen
 
servus sven,

ich hoffe ich habe dich richtig verstanden und denke das dir das weiterhelfen könnte: SwissDelphiCenter - ...den Quelltext vom TWebbrowser auslesen/speichern

mfg Jonny

Sven Janssen 4. Apr 2006 13:37

Re: TWebBrowser Sourcecode auslesen
 
Ne das ist ja mein Problem.
Im Fall einer XML Datei wird das Teil intelligent und generiert einen ganz neuen HTMLCode. Sprich mit CSS Tags, Javascript usw. Wie ich an den komme habe ich auch schon raus bekommen, nur kann ich den gar nicht gebrauchen.
Ich brauch das Ursprungsrohmaterial. Und ich habe das Gefühl, dass ich genau an diesen nicht heran komme.

Dennoch danke für die Antwort.

Sven

Sven Janssen 4. Apr 2006 14:21

Re: TWebBrowser Sourcecode auslesen
 
Glaube ich mache das nen Tick zu kompliziert.

URLDownloadToFile schaut schon einmal ganz nett aus. Weiß jemand ob der auf den IE aufsetzt ( laut MS mind. IE 3.0 ) und damit auch die Verbindungseinstellungen aus dem Internet Explorer benutzt ( Proxy etc? )

Sven

Daniel Schuhmann 4. Apr 2006 15:07

Re: TWebBrowser Sourcecode auslesen
 
Diese Funktion setzt auf IE3 auf und berücksichtigt die Proxyeinstellungen. Du bekommst hier einen String zurückgeliefert, der den Quellcode enthält. Bitte den Code ganz unten verwenden.

himitsu 4. Apr 2006 15:08

Re: TWebBrowser Sourcecode auslesen
 
Ja, der setzt auf dem IE auf ... im Grunde läder der IE die Datei runter und gibt sie dir dann, außerdem wird (wenn vorhanden) auch gleich die Kopie aus der Browsercache.

DGL-luke 4. Apr 2006 18:31

Re: TWebBrowser Sourcecode auslesen
 
Sollte IdHTTP da nicht auch transparente Resultate liefern?

Sven Janssen 4. Apr 2006 19:24

Re: TWebBrowser Sourcecode auslesen
 
Zitat:

Zitat von DGL-luke
Sollte IdHTTP da nicht auch transparente Resultate liefern?

Wie ich oben schrieb. Ich habe damit extreme Probleme.
Des weiteren ist mir heute aufgefallen das wohl die Indy Komponente nicht unter NT läuft. Zumindestens stürzen alle Programm beim starten ab die auf die Komponente aufsetzen.

Mit URLDownloadToFile habe ich aber auch so meine Probleme. Irgendwie hängt die Funktion auf einigen Rechner komplett, so dass ich das Programm nur noch über den Task Manger beenden kann.

Naja morgen mehr :-D

Mavarik 4. Apr 2006 19:28

Re: TWebBrowser Sourcecode auslesen
 
Versuch doch mal:

Delphi-Quellcode:
var
  h_cachedInternet: HINTERNET;

function GetRawHtml(var web_browser: TWebBrowser): String;
var
  http_handle: HINTERNET;
  buffer: array [0..20] of Char;
  url: String;
  bytes_read: DWORD;
begin
  url := web_browser.LocationURL;
  http_handle := InternetOpenUrl(h_cachedInternet,
    PChar(url),nil,0,INTERNET_FLAG_NO_UI,0);
  if http_handle = nil then
    result := ''
  else
  begin
    //--------------------------------------------------------------
    // Retrieve the URL data. Hopefully this should be straight from
    // the cache because of how the internet connection was defined.
    //--------------------------------------------------------------
    result := '';
    repeat
      InternetReadFile(http_handle,@buffer,Length(buffer),bytes_read);
      result := result + Copy(buffer,1,bytes_read);
    until bytes_read =0;
    InternetCloseHandle(http_handle);
  end;
end;

initialization

//--------------------
// Initialise WinInet.
//--------------------
h_cachedInternet := InternetOpen(PChar(application.title),
  INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY,nil,nil,
  INTERNET_FLAG_FROM_CACHE);
Frank :coder:

Zu finden bei Brian Cryer

Sven Janssen 4. Apr 2006 21:22

Re: TWebBrowser Sourcecode auslesen
 
Ja schon gesehen in den Link oben. Ist aber blocking und somit nicht gerade das Gelbe vom Ei.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr.
Seite 1 von 3  1 23      

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