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