webgadget mit frames quelltext auslesen ?

Für allgemeine Fragen zur Programmierung mit PureBasic.
bossi
Beiträge: 12
Registriert: 07.10.2004 19:40

webgadget mit frames quelltext auslesen ?

Beitrag 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
Benutzeravatar
stbi
Beiträge: 685
Registriert: 31.08.2004 15:39
Wohnort: Cleverly Hills

Re: webgadget mit frames quelltext auslesen ?

Beitrag 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
PB 4.02 XP Pro SP2 "Der Code ist willig, aber der Prozessor ist schwach."

Es gibt keine Vista-Witze. Es ist alles wahr!
sbehrens
Beiträge: 274
Registriert: 08.09.2004 18:41
Kontaktdaten:

Beitrag 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
enjoy life... while you can!
bossi
Beiträge: 12
Registriert: 07.10.2004 19:40

Beitrag 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
Benutzeravatar
stbi
Beiträge: 685
Registriert: 31.08.2004 15:39
Wohnort: Cleverly Hills

Beitrag 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.
PB 4.02 XP Pro SP2 "Der Code ist willig, aber der Prozessor ist schwach."

Es gibt keine Vista-Witze. Es ist alles wahr!
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag von Zaphod »

du könntest auch die windowsversion von wget zu hilfe ziehen.
bossi
Beiträge: 12
Registriert: 07.10.2004 19:40

Beitrag von bossi »

hi zaphod,
hast da mal nen kleine beispei :roll:
Benutzeravatar
Zaphod
Beiträge: 2875
Registriert: 29.08.2004 00:40

Beitrag 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.
bossi
Beiträge: 12
Registriert: 07.10.2004 19:40

Beitrag 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.
Benutzeravatar
stbi
Beiträge: 685
Registriert: 31.08.2004 15:39
Wohnort: Cleverly Hills

Beitrag 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.
PB 4.02 XP Pro SP2 "Der Code ist willig, aber der Prozessor ist schwach."

Es gibt keine Vista-Witze. Es ist alles wahr!
Antworten