Loginprobleme, Post, mechanize
Verfasst: Dienstag 29. Mai 2012, 15:33
Moin ich versuche mich schon länger bei einer Webseite mit mechanize anzumelden um mein Verständnis von mechanize und der Webprogrammierung mit Python generell zu festigen.
Es handelt sich um folgende Seite:
http://www.die-staemme.de/
Wenn man sich registriert hat, kann man sich anmelden, indem man zuerst die logininformationen eingibt und später den gewünschten Server auswählt.
Dies funktioniert mit 2 Post-Anfragen, bei einem Account mit dem usernamen "dada", dem passwort "passwort" und dem Server 82 sieht das so aus (Live HTTP headers):
Ich habe mich versucht einzuloggen, scheiterte aber kläglich.
Meine Versuche gingen in etwa in diese Richtung:
So etwas in diese Richtung funktioniert aber offensichtlich nicht. Ist mein Ansatz generell falsch? Habe ich das POST protocol einfach nicht verstanden?
Ich bin noch ziemlich unerfahren mit Python und webprogrammierung im Allgemeinen, weiss irgendjemand von den erfahreneren Usern hier weiter?
Freue mich auf jede Hilfe.
Es handelt sich um folgende Seite:
http://www.die-staemme.de/
Wenn man sich registriert hat, kann man sich anmelden, indem man zuerst die logininformationen eingibt und später den gewünschten Server auswählt.
Dies funktioniert mit 2 Post-Anfragen, bei einem Account mit dem usernamen "dada", dem passwort "passwort" und dem Server 82 sieht das so aus (Live HTTP headers):
Code: Alles auswählen
http://www.die-staemme.de/index.php?action=login&server_list=1&show_server_selection=1
POST /index.php?action=login&server_list=1&show_server_selection=1 HTTP/1.1
Host: http://www.die-staemme.de
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://www.die-staemme.de/index.php
Content-Length: 60
Pragma: no-cache
Cache-Control: no-cache
user=dada&password=passwort&cookie=false&clear=true
HTTP/1.1 200 OK
X-Powered-By: PHP/5.3.3-7+squeeze8
Content-Encoding: gzip
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Date: Tue, 29 May 2012 14:23:35 GMT
Server: lighttpd/1.4.28
----------------------------------------------------------
http://cdn.tribalwars.net/graphic/world.png
GET /graphic/world.png HTTP/1.1
Host: cdn.tribalwars.net
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Referer: http://www.die-staemme.de/merged/index.css?1338296463
HTTP/1.1 200 OK
Date: Tue, 29 May 2012 14:23:35 GMT
Expires: Sat, 09 Jun 2012 14:18:16 GMT
Last-Modified: Thu, 26 Apr 2012 13:47:14 GMT
Cache-Control: max-age=1209600
Content-Type: image/png
Etag: "1139726570"
Accept-Ranges: bytes
Server: lighttpd/1.4.28
Content-Length: 1470
----------------------------------------------------------
http://www.die-staemme.de/index.php?action=login&server_de82
POST /index.php?action=login&server_de82 HTTP/1.1
Host: http://www.die-staemme.de
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive
Referer: http://www.die-staemme.de/index.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 68
user=dada&password=16c42d7284d1883741ac10460690935fbe1970a7
HTTP/1.1 302 Found
X-Powered-By: PHP/5.3.3-7+squeeze8
Location: http://de82.die-staemme.de/login.php?sid=35ecfa704933&secret=0&mobile_no_force=0
Content-Encoding: gzip
Vary: Accept-Encoding
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Date: Tue, 29 May 2012 14:23:37 GMT
Server: lighttpd/1.4.28
Meine Versuche gingen in etwa in diese Richtung:
Code: Alles auswählen
import mechanize
data1 = '''POST /index.php?action=login&server_list=1&show_server_selection=1 HTTP/1.1
Host: http://www.die-staemme.de
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 51
user=dada&password=passwort&cookie=false&clear=true'''
data2 = '''POST /index.php?action=login&server_de82 HTTP/1.1
Host: http://www.die-staemme.de
User-Agent: Mozilla/5.0
Content-Length: 59
user=dada&password=16c42d7284d1883741ac10460690935fbe1970a7'''
br = mechanize.Browser(factory=mechanize.RobustFactory())
br.set_handle_robots(False)
br.open('http://www.die-staemme.de')
br.open('http://www.die-staemme.de/index.php?action=login&server_de82', data1) #br.open("url", postrequest)
br.open('http://www.die-staemme.de/index.php?action=login&server_de82', data2)
Ich bin noch ziemlich unerfahren mit Python und webprogrammierung im Allgemeinen, weiss irgendjemand von den erfahreneren Usern hier weiter?
Freue mich auf jede Hilfe.