Quellcode eines Frames auslesen!!!

  • VB.NET

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von BlackWest.

    Quellcode eines Frames auslesen!!!

    Hey leute!
    Ich habe ein Problem mit VB 2008.

    Ich spiele ein bissel "MyFreeFarm" (wers mag nech ;) )

    Naja.. dafür wollte ich mir ein kleines Programm schreiben...

    Ich habe mir einen kleinen Webbrowser Programmiert, mitdem ich mich dann im Spiel einlogge.
    Nun will ich den Quellcode eines Bestimmten Frames auslesen. Den Link http://s21.myfreefarm.de/stadt/markt.php?page=1&order=p&id=18&filter=1&guild=0 wie man sieht habe ich. Wenn ich mit dem normalem Firefox Browser Rechtsklick den Quellcode des Frames anzeigen lasse, geht dies ohne Probleme.

    Wenn ich im Spiel eingeloggt bin, habe ich im hintergrund einen Webbrowser2 (die seite wird nur angezeigt, wenn man mit im Spiel eingeloggt ist) laufen, der mir ohne Probleme die Seite Anzeigt. Jedoch, wenn ich mir den Code anzeigen lassen will, passiert entweder nix (könnte programmierfehler sein) oder wenn ich bissel ummodle und mit den Quellcode anzeigen lassen will mit dem Befehl RichTextBox1.Text = WebBrowser2.DocumentText kommt folgende Fehlermeldung:

    Das System kann die angegebene Datei nicht finden. (Ausnahme von HRESULT: 0x80070002)

    Mit der Standartseite "Myfreefarm.de" zeigt er mir den Code an!

    Wie kann ich es schaffen, mir den Quellcode diesen Links anzeigen zu lassen?? (wollte diesen dann nachher nach gewissen passagen durchsuchen und in Variablen speichern.

    Hoffe ihr könnt mir Helfen!!

    Gruß BlackWest

    PS: Grob gesagt, in dieser Thematik bin ich total unwissend!!!!!! Grundlagen der VB_Programmierung kann ich!!!
    Wie meinst du mit "online"??

    Es ist kein Problem mir diesen Link in jeglichem Browser anzeigen zu lassen, wenn ich im Spiel eingeloggt bin.
    Mit dem FireFox kann ich mir dann mit Rechtsklick auch den Code anzeigen lassen.
    Was beim VB_Programm nicht funktioniert (Fehlermeldung)

    Webbrowser.Frames kennt mein VB nicht. Also er schlägt es mir nicht vor!
    sry WebBrowser.Document.Frames...

    und kannst du den Code im IE anzeigen lassen? weil das ist ja eigentlich das entscheidende...beim WebBrowser2 muss das Dokument ja vollständig geladen sein, bevor du den Quelltext ausliset...
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Webbrowser2.Document.Frames..
    gibts ebenfalls nichts!!!

    Und ja.. ich kann mir auch mit dem IE die Quellcode des links anzeigen lassen.
    Und in meinem Programm ist definitiv der link fertig geladen, bevor ich mir den Code anzeigen lassen will!!
    aaach verdammt...jetzt hab ich halt nochmal nachgeguckt...nochmal ne eigenschaft drauf...

    WebBrowser.Document.Window.Frames...jetzt aber^^ wenn genau führst du denn RichTextBox1.Text = WebBrowser2.DocumentText aus?
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    AHH jetz find ich das mit "Frames" auch.. :)

    Jedoch weiß ich nicht, was ich da noch dran setzen muss. Der unterstreicht mir das jetz blau!!

    RichTextBox1.Text = WebBrowser2.Document.Window.Frames("hier der Link")

    Ich lass die Seite laden.
    Und habe dann einen Button, der dann den Quellcode auslesen soll und in die Richtextbox reinschreiben soll.
    Frames() ist ein Array der Frames in der Seite, wenn nur ein Frame ist dann Frames(0).DocumentText oder Frames(0).InnerHTML musste schauen wleche EIgenschaft dir den Quelltext zurück gibt.

    Ein bischel musste auch selbst überlegen nicht nur Mundgerechte Happen zuwerfen lassen.
    hilft mir leider nicht weiter, da ich nicht weiß, was der genau von mir will...
    wäre es möglich, dass du mir den button einmal so schreibst, dass der mir in der RichTextBox das ausgibt, was du meinst?? oder vllt auch der WebBrowser2 mir das anzeigt, was du mit deiner Zeile meinst?

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    RichTextBox1.Text = WebBrowser2.DocumentText()
    WebBrowser2.Document.Window.Frames(0)

    End Sub

    Wäre super, weil sonst raff ich das nie!!
    ich weiß ja nicht welchen Frame du willst...:
    RichTextBox1.Text = Document.Window.Frames(0).Document.Body.InnerHtml ' für den ersten Frame...
    aber das Dokument muss aufjedenfall geladen sein :P
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    also für doofe wie mich!

    RichTextBox1.Text = WebBrowser1.Document.Window.Frames(2).Document.Body.OuterHtml

    InnerHtml funktioniert nicht. Da spruckt er mir in der Box nix aus.
    OuterHtml gibt er mir Body Body zurück das wars schon..
    und das egal ob ich Frames(0) (1) oder (2) eingebe.

    aber für mich jetz zum verständnis..

    Ein Frame ist ja eig. ein Bild.
    D.h. Wenn ich das Spiel aufhabe und zum Beispiel den Markt öffne ist im Hintergrund noch immer das Hauptbild zu sehen und im Fordergrund ist das Bild (Farme) des Marktes zu sehen.
    Hab ich das jetz so richtig verstanden??

    Und wenn ich jetz in dem Hauptbild bin, und das Programm laufen lasse, geht er in den Quellcode des "Hauptbildschirms" und sucht da nen Frame(0) oder (1) oder was der gleichen?
    ruft diesen aus und gibt mir den Quellcode des Frames aus???
    (Ich vermute diese Vorstellung ist Falsch???)

    wie im Eingangspost gesagt. In dieser Thematik bin ich Neuling!!!!
    Habe von Websites und Internetaufbau eigentlich GAR KEINE Ahnung ;( ;(
    Nein Frame ist Frame und Bild ist ein Bild. Wie kommste drauf das ein Frame ein Bild sein soll O.o

    Wo es noch kein PHP gab und es lästig war eine Navigation auf jede HTML Seite zu machen nutzte man Frames, damit konnte man eine HTML Seite in verschiedene Bereiche aufteilen, in jedem Frame wurde dann die entsprechende HTML Seite geladen.
    Z.B. gabs auf der linken Seite einen Frame der so 200px breit war, dort wurde die navi.htm reingeladen, im Hauptframe der den rest der Seite füllte der Content.

    Code würde dafür so aussehen:

    navi.htm

    HTML-Quellcode

    1. <html>
    2. <body>
    3. <a href="start.htm" target="content">Hauptseite</a><br>
    4. <a href="aboutme.htm" target="content">Über mich</a><br>
    5. <a href="bilder.htm" target="content">Bilder</a><br>
    6. <a href="links.htm" target="content">Links</a><br>
    7. </body>
    8. </html>


    start.htm

    HTML-Quellcode

    1. <html>
    2. <body>
    3. Hallo und willkommen auf meiner Homepage
    4. </body>
    5. </html>


    aboutme.htm

    HTML-Quellcode

    1. <html>
    2. <body>
    3. Ich bin der Dodo und komme aus Berlin
    4. </body>
    5. </html>


    index.html

    HTML-Quellcode

    1. <html>
    2. <head>
    3. <title>Meine Homepage</title>
    4. <head>
    5. <frameset cols="200, *" frameborder="0" framespacing="0" border="0">
    6. <frame name="navigation" src='navi.htm' noresize frameborder="0" scrolling="no" marginwidth="0" marginheight="0">
    7. <frame name="content" src="start.htm" noresize frameborder="0" scrolling="auto" marginwidth="0" marginheight="0">
    8. <noframes>
    9. <body>
    10. <p>Es werden keine Frames unterstützt</p>
    11. </body>
    12. </noframes>
    13. </frameset>
    14. </html>


    So ma ausm Kopf geschrieben. Das sind Frames und nichts anderes. Sicher meinst du etwas anderes.
    Habs jetz auch geschafft mit meinem nicht vorhandenen Halbwissen :D

    mit dem code

    RichTextBox1.Text = WebBrowser2.Document.GetElementById("marketcontainer").OuterHtml

    und dann den Link von dem "Frame" im Browser geladen!

    dann hats komischerweise funktioniert!

    mit dem

    RichTextBox1.Text = WebBrowser2.DocumentText

    gings irgendwie nicht !!

    Naja.. Danke für eure Hilfe!!