XSL Quelltext auslesen

  • Hi ich hab eigtl nur ne kurze fixe Frage
    Ich hab versucht eine Seite, die mitl xsl gestaltet ist auszulesen.
    Aber ich bekomm immer nur:
    <html><head><title></title></head><body></body></html>
    zurück
    Kann mir da irgendwer helfen?

  • Gibts eigtl recht wenig Code beizusteuern:

    [autoit]


    $Socket = _FFStart("http://www.gwars.de/index.php?PAGE=LoginPage",default,1)

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

    If $Socket > -1 Then
    _FFSetValueByName($Socket,"NAME","********")
    _FFSetValueByName($Socket,"SECRET","********")
    _FFClick($Socket,'.forms[0].elements[4]')
    _FFTabCloseAll($Socket)
    _FFFrameEnter($Socket, 'G_Wars_Hauptframe')
    _FFFrameEnter($Socket, 'G_Wars_Hauptframe')
    $sHTML = _FFReadHTML($Socket,true)
    $file = FileOpen("config.ini", 1)
    If $file = -1 Then
    MsgBox(0, "Fehler", "Kann Datei nicht öffnen")
    Exit
    EndIf
    FileWrite($file, $sHTML)
    Sleep(3000)
    _FFFrameLeave($Socket)
    EndIf

    [/autoit]


    Ich dachte eigtl es gibt ne generell andere Angehensweise um XSL-Quelltexte auszulesen.

  • Okay das ist aber eigtl ne gute Idee. Ich probiers morgen nochmal mim IE wenns dann nicht klappen sollte meld ich mich nochmal

  • Das Programm kann ich nun leider nicht nachvollziehen, da ich mich ja nicht anmelden kann ...

    Du startest FF also mit einer Seite, die normalerweise ein PopUp-Fenster ist, schickst das Formular ab und was passiert dann? Nicht im Programm - auf der Seite?

  • Hat das überhaupt so funktioniert?

    So weit mal wie ich es ausprobieren kann:

    Spoiler anzeigen
    [autoit]

    #region Includes
    #include <FF.au3>
    #endregion Includes
    $Socket = _FFStart("http://www.gwars.de/index.php?PAGE=LoginPage",default,1)

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

    If $Socket > -1 Then
    _FFSetValueByName($Socket,"NAME","********")
    _FFSetValueByName($Socket,"SECRET","********")
    _FFFormSubmit($Socket)
    _FFLoadWait($Socket)
    _FFTabCloseAll($Socket)
    If _FFFrameEnter($Socket, 'GWARS_HAUPTFRAME','name') Then
    $sHTML = _FFReadHTML($Socket,true)
    $file = FileOpen("config.ini", 1)
    If $file = -1 Then
    MsgBox(0, "Fehler", "Kann Datei nicht öffnen")
    Exit
    EndIf
    FileWrite($file, $sHTML)
    Sleep(3000)
    _FFFrameLeave($Socket)
    EndIf
    EndIf

    [/autoit]

    Wenn nur ein Formular auf der Seite ist reicht einfach _FFFormSubmit($Socket) um es abzusenden.
    Dann sollte man noch warten bis die Seite geladen ist _FFLoadWait.
    Um mit _FFFrameEnter einen Frame mit Namen anzusprechen muß man das der Funktion auch sagen, ansonsten sucht sie nach dem Index, also _FFFrameEnter($socket,"DerFrameName","name")
    Das kann man auch gleich überprüfen wenn man den Befehl mit If abfrägt.

    Weiter kann ich es nicht testen.

  • [autoit]

    If $Socket > -1 Then
    _FFSetValueByName($Socket,"NAME","***************")
    _FFSetValueByName($Socket,"SECRET","**********")
    _FFClick($Socket,'.forms[0].elements[4]')
    _FFTabCloseAll($Socket)
    Dim $aktion[5] = ['Building', 'Research', 'Spaceships', 'Rocket', 'Defense']
    Dim $planetenId[10] = ['*****','*****','*****','*****','*****','*****','*****','*****','*****','*****']
    $i = 0
    While $i<10
    $url = 'http://www.gwars.de/game/index.php?ACTION='&$aktion[0]&'&SUBACTION=SetActivePlanet&ID='&$planetenId[$i]
    _FFOpenUrl($Socket,$url)
    $quellText = _FFReadHTML($Socket)
    $datei = FileOpen($planetenId[$i]&".plani", 2)
    FileWrite($datei, $quellText)
    FileClose($datei)
    $i = $i+1
    WEnd
    MsgBox(64,'','Fertig')
    EndIf

    [/autoit]

    Jetzt funktionierts er liefert mir zwar einen anderen Quelltext als der Firefox selbst aber der ist sogar noch besser!

    Einmal editiert, zuletzt von NetZwerg2005 (12. Februar 2009 um 13:53)