Seite 1 von 2

webgadget mit frames quelltext auslesen ?

Verfasst: 14.10.2004 11:33
von bossi
hi,
also ich habe ien webgadget in den eine website ist die aus 2 frames besteht.
nun möchte ich den quelltext aus frame 1 und 2 in ein editgadget einfügen.
hat da einer nen plan wie man das anstelle kann ?

bye bye
bossi

Re: webgadget mit frames quelltext auslesen ?

Verfasst: 14.10.2004 12:34
von stbi
bossi hat geschrieben:hi,
also ich habe ien webgadget in den eine website ist die aus 2 frames besteht.
nun möchte ich den quelltext aus frame 1 und 2 in ein editgadget einfügen.
hat da einer nen plan wie man das anstelle kann ?
im Quelltext des Framesets steht, aus welchen URLs die Frames nachgeladen werden, siehe Beispiel, die musst Du dann mit URLDownloadToFile_ (so oder so ähnlich hiess die API-Funktion) separat laden und in Dein EditorGadget schaufeln

Code: Alles auswählen

<html>
<head>
<title>Text des universellen Titels</title>
</head>
<frameset cols="250,*">
  <frame src="verweise.htm" name="Navigation">
  <frame src="startseite.htm" name="Daten">
  <noframes>
    Ihr Browser kann diese Seite leider nicht anzeigen!
  </noframes>
</frameset>
</html

Verfasst: 14.10.2004 12:38
von sbehrens
1. URLDownloadToFile_() - Website auf deinem PC speichern
2. Dann eine Prozedur schreiben, die aus der Website die Sourcen der beiden Frames "extrahiert"
2.1

Code: Alles auswählen

<frame src="purearea.net">
Du suchst in dem File nach dieser Zeile (Hier ist das nur ein Grundgerüst, dann musst du halt nach "<frame " suchen) und speicherst sie in einer Variable.
2.2 Aus der Variable die Source extrahieren (hier:"purearea.net")
3. URLDownloadToFile() - Das File von der extrahierten Quelle auf dem PC Speichern

Jetzt hast du die Datei auf deinem PC und der Rest ist ja nicht schwer. Es kann bloß vorkommen, dass eine relative Quelle angegeben wird. (zB. source="home.html"). Dass musst du dann noch unterscheiden können, damit du vor der relativen Source noch die Domain packen kannst. Verstanden? :?

mfG
Basti

Verfasst: 14.10.2004 13:00
von bossi
somit wird der frameteil 2x geladen und möchte ich nicht, bzw geht nicht.
seite in das webgadget laden http:///xxx.xx
<frame src="verweis1.htm" name="frame1">
<frame src="verweis2.htm" name="frame2">
so wird das zb.b frame1 zum 2ten mal gelden "InternetReadFile_(hURL,@Buffer, Len(Buffer), @Bytes)"
da musste es noch eine andere möglichkeit geben, das es direkt aus nen webgadget kommt.
z.b. aus ein speicherbereich ? aber damit kenn ich mich nicht so genau aus.

gruß
bossi

Verfasst: 14.10.2004 13:26
von stbi
bossi hat geschrieben:somit wird der frameteil 2x geladen und möchte ich nicht, bzw geht nicht.
...da musste es noch eine andere möglichkeit geben, das es direkt aus nen webgadget kommt.
z.b. aus ein speicherbereich ? aber damit kenn ich mich nicht so genau aus.
Warum so sparsam? Schottische Vorfahren? :lol:

Das Webgadget kennt eigentlich nur die URL und den Output der Rendering Engine, nicht den HTML-Quelltext. Die HTML-Dateien könnten noch im Browser Cache rumliegen, aber darauf kannst Du Dich nicht verlassen.

Alternative: Die Frameset-URL in eine Datei holen. Frame-URLs auslesen. Die Frames ebenfalls in Dateien abspeichern. Die Frameset-Seite so anpassen, dass die Frame-URLs auf die lokalen Dateien verweisen. Dann erst Frameset-Datei in Webgadget anzeigen und die Frame-Dateien ins Editor-Gadget laden.

Verfasst: 14.10.2004 13:39
von Zaphod
du könntest auch die windowsversion von wget zu hilfe ziehen.

Verfasst: 14.10.2004 13:44
von bossi
hi zaphod,
hast da mal nen kleine beispei :roll:

Verfasst: 14.10.2004 13:54
von Zaphod
einfach wget zusammen mit dem programm weitergeben
www.cybershade.us/winwget/
und wget mit runprogramm benutzen.

wget steht unter der gpl, kann man also kostenlos mitgeben, dann spart man sich basteleien mit der winapi und URLDownloadToFile_().

EDIT:
oh, ich glaube ich habe nicht richtig verstanden was du machen willst... wenn du ein frameset aus dem internet runterladen willst währe das eine möglichkeit.

Verfasst: 14.10.2004 14:46
von bossi
sorry, das ist nicht das was ich meine :cry:
dieses webgadget muss doch mit sein inahlt im speicher liegen :roll:
bäuchte man nur die speicheradresse und länge wissen um den inhalt zu lesen.
es geht mir um ein paidmailer der im oberen frame ein ein text stehen hat in dem ich die aufenhaltszeit auslesen möchte.
somit weis mein programm wann es die nächste seite aufrufen kann.

Verfasst: 14.10.2004 15:43
von stbi
bossi hat geschrieben:sorry, das ist nicht das was ich meine :cry:
dieses webgadget muss doch mit sein inahlt im speicher liegen :roll:
bäuchte man nur die speicheradresse und länge wissen um den inhalt zu lesen.
es geht mir um ein paidmailer der im oberen frame ein ein text stehen hat in dem ich die aufenhaltszeit auslesen möchte.
somit weis mein programm wann es die nächste seite aufrufen kann.
Wie ich bereits sagte, das Webgadget kennt die URL und die gerenderte Seite, aber nicht den HTML-Quellcode! D.h. der HTML-Quellcode steht somit nicht im Speicher.
Noch ne Alternative: lass einen http-proxy-Thread mitlaufen, über den sich das Webgadget versorgt und der die Dateien mitschneidet.

Das mit dem Paidmailer (wassollndassein?) und der Zeit im Frame und dem nächsten Seitenaufruf hab ich leider nicht kapiert.