Keys für den https-Login identifizieren / Login via python
Verfasst: Sonntag 23. März 2008, 14:40
Hallo,
mein Ziel ist es, mich via Python auf einer https-Site mit meinem Account einzuloggen.
Mein bisheriges nachlesen hat ergeben, dass als Zutaten urllib.Request, urllib2.urlopen und urllib.urlencode reichen müssten.
Nur funktioniert es bei mir nicht. Ich vermute, dass es daran liegt, dass ich einen falschen POST abschicke.
Hier mal ein Auszug aus dem Quelltext der Seite:
Nach diesem Versuch lande ich auf einer "Benutzername oder Passwort vergesse?"-Seite. Allerdings wird der Benutzername in das richtige Formularfeld übertragen.
Hat jemand eine Idee, wo der Fehler liegen könnte?
Frohe Ostern,
Doc
mein Ziel ist es, mich via Python auf einer https-Site mit meinem Account einzuloggen.
Mein bisheriges nachlesen hat ergeben, dass als Zutaten urllib.Request, urllib2.urlopen und urllib.urlencode reichen müssten.
Nur funktioniert es bei mir nicht. Ich vermute, dass es daran liegt, dass ich einen falschen POST abschicke.
Hier mal ein Auszug aus dem Quelltext der Seite:
und hier mal mein python-code.<div class="menuBox2" id="menuBoxLogin">
<div class="menuBox2Head" id="menuBoxHeadLogin">Login</div>
<div class="menuBox2Body" id="menuBoxBodyLogin">
<form action="https://secure.booklooker.de/app/sec/login.php" name="f" method="post">
<input type="hidden" name="do" value="login">
<input style="background: url(/images/dummy.gif) center left #fff; background-repeat: no-repeat;" type="text" name="loginName" id="loginName" value="" size="17" class="search_form" onFocus="this.style.backgroundImage = 'none';" onBlur="if (this.value == '') {this.style.backgroundImage = 'url(/images/login_benutzername_bg.gif)'};"><br>
<img src="/images/dummy.gif" width="10" height="5"><br>
<input style="background: url(/images/dummy.gif) center left #fff; background-repeat: no-repeat;" type="password" name="loginPass" id="loginPass" value="" size="17" class="search_form" onFocus="this.style.backgroundImage = 'none';" onBlur="if (this.value == '') {this.style.backgroundImage = 'url(/images/login_passwort_bg.gif)'};">
<input type="image" src="/images/button_go.gif" border="0" align="absmiddle"><br>
<a href="https://secure.booklooker.de/app/sec/register.php?">Neu registrieren</a>
</form>
<script type="text/javascript">
window.onload = init;
function init() {
if (loginPass = document.getElementById('loginPass')) {
if (loginPass.value == '') {
loginPass.style.backgroundImage = "url(/images/login_passwort_bg.gif)";
}
}
if (loginName = document.getElementById('loginName')) {
if (loginName.value == '') {
loginName.style.backgroundImage = "url(/images/login_benutzername_bg.gif)";
}
}
}
</script>
</div>
<div class="menuBox2Foot" id="menuBoxFootLogin"></div>
</div>
Code: Alles auswählen
import urllib, urllib2
url = "https://secure.booklooker.de/app/sec/login.php"
request = urllib2.Request(url)
data = urllib.urlencode({
'loginPass' : 'MeinPasswort',
'loginName' : 'MeinBenutzername'
})
loggedin = open('logged.html', 'wb')
handle = urllib2.urlopen(request, data)
for line in handle:
try: loggedin.write(line)
except: pass
handle.close()
loggedin.close()
Hat jemand eine Idee, wo der Fehler liegen könnte?
Frohe Ostern,
Doc