Einloggen auf einer Website (mechanize)

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Y0Gi hat geschrieben:Bei einem Formular, das über einen Submit-Button vom Typ "image" abgesendet wird, werden die Parameter x und y mitgesendet - notfalls jeweils mit dem Wert 0.
CrackPod
User
Beiträge: 205
Registriert: Freitag 30. Juni 2006, 12:56

Ok, den Login hab ich jetz schon gemeistert =)
Aber eines Frage ich mich: Wenn ich das hier durchlaufen lasse:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

import ClientForm
from urllib2 import urlopen

response = urlopen('http://welt1.travian.de/login.php')
form = ClientForm.ParseResponse(response, backwards_compat=False)[0]
response.close()
print form
Dann bekomm ich folgenden print:
<snd POST http://welt1.travian.de/dorf1.php application/x-www-form-urlencoded
<HiddenControl(w=) (readonly)>
<HiddenControl(login=1181149541) (readonly)>
<TextControl(e6fafb6=)>
<PasswordControl(ebab27a=)>
<HiddenControl(e6d172f=) (readonly)>
<ImageControl(s1=login)>
<CheckboxControl(autologin=[*ja])>>
Das letzte HiddenControl Feld hat keinen Wert. Wenn ich jedoch die Seite automatisch aufrufe und mir den Quellcode ansehen, hat dieses Feld einen Wert(jetz z.B.:

Code: Alles auswählen

<input type="hidden" name="e6d172f" value="4eac5ffe42">
) Wieso wird der von ClientForm nicht ausgelesen? Ich hab in der JS Datei keine Funktion gefunden, die das Feld automatisch beschreibt, was ja von ClientForm wahrscheinlich nicht gelesen werden könnte, wenns nach dem Laden beschrieben wird.
Gibts ne Möglichkeit dieses Feld trotzdem noch auszulesen?
LG
Itsjustme
User
Beiträge: 13
Registriert: Mittwoch 5. März 2008, 16:40
Wohnort: Köln
Kontaktdaten:

hi ich habe grade das gleiche problem aber kriege den login irgendwie nicht hin wär cool wenn du deins klappend nochmal postest oder jemand mir sagen kann was hier falsch ist

Code: Alles auswählen

###!/usr/bin/env python
### -*- coding: iso-8859-15 -*-

import mechanize
import urllib

# Login
loginurl = "http://www.jappy.de/start"
logindata = urllib.urlencode(
    {
        "login[u]": "User",
        "login[p]": "Password",
        "Submit": "login",
        "<None>":"[*on]",
        
    }
)
response = mechanize.urlopen(loginurl, logindata)
response.read() # wichtig

posteingangurl = "http://www.jappy.de/"
response = mechanize.urlopen(posteingangurl)
#schreibe den htmloutput in eine Datei,
#damit man das Ergebniss anschauen kann
f = file('output.html','w')
f.write(response.read())
f.close()
mfg Itsjustme
Antworten