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?
XSL Quelltext auslesen
-
NetZwerg2005 -
11. Februar 2009 um 21:52
-
-
- Offizieller Beitrag
Vielleicht solltest du etwas Code beisteuern..
-
Gibts eigtl recht wenig Code beizusteuern:
[autoit]
[/autoit][autoit][/autoit][autoit]
$Socket = _FFStart("http://www.gwars.de/index.php?PAGE=LoginPage",default,1)If $Socket > -1 Then
[/autoit]
_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
Ich dachte eigtl es gibt ne generell andere Angehensweise um XSL-Quelltexte auszulesen. -
- Offizieller Beitrag
Ich dachte eigtl es gibt ne generell andere Angehensweise um XSL-Quelltexte auszulesen.
Quelltext laden und dann bearbeiten ist schon der richtige Weg. Allerdings kann ich zu den FF-Funktionen nichts sagen, da ich keinen FF verwende. -
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
[/autoit] [autoit][/autoit] [autoit]
#include <FF.au3>
#endregion Includes
$Socket = _FFStart("http://www.gwars.de/index.php?PAGE=LoginPage",default,1)If $Socket > -1 Then
[/autoit]
_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
EndIfWenn 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
[/autoit]
_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')
EndIfJetzt funktionierts er liefert mir zwar einen anderen Quelltext als der Firefox selbst aber der ist sogar noch besser!
-
Auch gut.
Die While-Schleife könntest du allerdings durch ein For To Next ersetzen, also:
For $i = 0 To 9
....code....
Nextist übersichtlicher.