FF.au3 Frame-Quelltext auslesen

  • Hallo zusammen,

    wie der Titel schon sagt, versuche ich verzweifelt den Frame-Quelltext einer Seite auszulesen.

    Soweit ich weiß müsste es doch mit Firefox funktionieren, da dies ja zu den Standard-Funktionen gehört, jedoch komme ich nicht weiter.

    Ich habe es bisher leider nur geschafft den Quelltext auszulesen aber nicht den Frame-Quelltext.

    In einem Forum habe ich gelesen, dass es wohl mit _FFFrameEnter etc. funktionieren würde, aber ich werde daraus leider nicht schlau :(


    Wäre echt super, wenn mir jemand helfen könnte, vllt geht es ja auch mit anderen Sachen als FF.au3

  • Soweit ich weiß müsste es doch mit Firefox funktionieren, da dies ja zu den Standard-Funktionen gehört, jedoch komme ich nicht weiter.


    FireFox ghört nicht zu den Funktionen welche mit AutoIt ausgeliefert werden, die FF.au3 ist von Stilgar. Auf der Beispielseite zur FF.au3 findest auch den Link zur Dokumentation zu den einzelnen Funktionen.

    Weoterhin gibt es ein Unterform Firefox-Automatisierung,

    mfg autoBert

    Einmal editiert, zuletzt von autoBert (1. August 2012 um 16:35)

  • Danke für die Rückmeldungen.

    Ich meinte, dass das Frame-Quelltext auslesen eine Standard Funktion von Firefox ist und soweit ich weiß, können durch die FF.au3 alle Standard Funktionen verwendet werden.

    Durch die Doku komme ich leider nicht nicht an mein Ziel, ich habe in anderen Foren gelesen, dass es irgendwie mit den Frame Funktionen funktionieren soll oder via TCP, jedoch komme ich leider nicht weiter.

    Falls dieser Thread in das Unterforum "Firefox-Automatisierung" gehört, dann bitte verschieben :)

  • Bei _FFFrameEnter muss ja eine ID oder ein Name mitgegeben werden, woher bekomm ich eines der beiden Informationen?

    Im Endeffekt möchte ich erstmal nur erreichen, was mit "Rechtsklick --> Aktueller Frame --> Frame-Quelltext anzeigen" möglich ist.


    MfG :)

  • Also, schauen wir mal:
    Auf dieser Seite hier liegen 2 Dateien:

    • index.html
    • frame.html


    Die für das Script relevante Datei ist index.html, denn von dort wird das Frame aufgerufen, sprich von da können wir die Informationen abfangen. Die ganze Datei sieht ja so aus:

    index.html
    HTML
    <html>
    <head>
    <title>Test-Seite</title>
    <body style="font:15px Helvetica;">
    <center>Hier steht ein Frame:<br>
    <iframe src="frame.html" name="mainframe" height="500px" width="500px"></iframe>
    </center>
    </body>
    </html>


    Und der für uns wichtigste Codeteil ist dieser hier:

    Code
    <iframe src="frame.html" name="mainframe" height="500px" width="500px">


    (Für Framesets ist das Vorgehen ähnlich)
    Die Information, die wir am Ende erhalten möchten, ist, dass die Seite frame.html im Frame angezeigt wird. Identifizierbar ist das Frame über seinen Namen, nämlich mainframe.
    Anhand dieser Informationen ist es uns möglich, den Inhalt eines bestimmten Frames mit AutoIt auszulesen.
    Wenn wir uns die Codezeile noch etwas genauer ansehen und mit anderen iFrame-Befehlen vergleichen, erkennen wir bestimmte Parallelen.
    <iframe src="frame.html" name="mainframe" height="500px" width="500px">
    Und wenn wir jetzt einen Blick auf _StringBetween werfen... ;)
    Dann kommt sowas raus:

    AutoIt
    [autoit]


    #include <String.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Dim $asFound, $asName, $asSRC
    $sURL = "http://sninfando.magix.net/public/iczcrash/"
    $sSite = "index.html"
    $sFrameName = "mainframe"

    [/autoit] [autoit][/autoit] [autoit]

    $sSource = BinaryToString(InetRead($sURL & $sSite))
    $asFound = _StringBetween($sSource,"<iframe",">")

    [/autoit] [autoit][/autoit] [autoit]

    For $i = 0 To UBound($asFound) - 1
    $asName = _StringBetween($asFound[$i],'name="','"')
    If $asName[0] = $sFrameName Then
    $asReturn = _StringBetween($asFound[$i],'src="','"')
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(0,"","Frame-Seite ist: " & $asReturn[0])
    MsgBox(0,"","Quellcode: " & @CRLF & BinaryToString(InetRead($sURL & $asReturn[0])))

    [/autoit]

    lg chess ;)

  • Vielen Dank chesstiger ;)

    Ich scheitere momentan nur am Login. Es handelt sich um ein Browsergame.

    Ist es möglich eine aktive Firefox- oder IE - Session zu verwenden?
    Dann könnte ich mich vorher einloggen und dann den Frame-Quelltext lesen :)

    Einmal editiert, zuletzt von iczcrash (4. August 2012 um 15:20)

  • Klar, musst dir nur den Quelltext über die IE-/FF-Methode holen, über _IEGetBody oder sowas (Ich kenne die IE-Funktionen nicht wirklich, die heißt wahrscheinlich so ähnlich.). Dann hast du ja den Quellcode aus der "Login-Sicht".

    lg chess

    PS: Oh oh, es geht um ein Browsergame? Ich will hoffen, dass du nur Informationen auslesen willst, und keinen Bot bastelst...? :whistling:


  • Ich scheitere momentan nur am Login. Es handelt sich um ein Browsergame.

    Tja und wieder war mein riecher richtig als ich direkt nach URL der Seite gefragt gabe.

    Forenregeln lesen:

    Zitat

    - Programme, die einem Spieler bei jeglicher Art von Computerspiel (auch Einzelspieler) einen Vorteil verschaffen ("Bots")

    Und Vote 4 close.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Hab es geschafft, danke chesstiger :)

    Keine Sorge, wird kein Bot, habe sogar die Genehmigung von einem Admin erfragt.


    Edit:

    Wollte auch kein Skript für den Login. Mit "scheitere am Login" meinte ich, dass durch AutoIt immer der Zugriff verweigert wurde, da meine Seite nicht geöffnet werden kann wenn man nicht eingeloggt ist.