Ich versuche ein Python-Programm zu erstellen, das sich mit meiner ID und meinem Passwort bei meiner Universität anmeldet. Dies ist die offizielle Seite für die Anmeldung: Ссылка
Wie Sie vielleicht bemerken, heißen die beiden Felder pr1 und pr2. Die Seite verwendet POST zum Senden der Daten. AUCH gibt es ein Cookie, das heruntergeladen wird, wenn die Seite geladen wird, es ist eine JSESSIONID, die einen zufälligen Wert enthält, der, wie ich verstanden habe, den Header der POST-Methode zurückgibt, um die Anmeldung zu authentifizieren.
Ich habe den folgenden Code geschrieben, aber die Rückgabeseite der GET-Methode sagt "Die Sitzung wurde nicht initialisiert", wahrscheinlich weil der Cookie nicht korrekt zurückgesendet wurde.
%Vor%Wo setze ich diesen Cookie, damit die Anmeldung authentifiziert wird?
Ich würde versuchen, die requests
-Bibliothek zu verwenden. Die Dokumentation ist exzellent und der Code ist viel sauberer als mit urllib*
Verwenden Sie eine Sitzung (siehe Kommentar von Piotr), die Cookies verarbeitet allein sieht das Ergebnis so aus
%Vor% Es scheint gut zu funktionieren, da ich eine "Usuario inexistente" Benachrichtigung für pr1
123456789 und "Senna inválida" mit Ihrer Benutzernummer erhalte.
Das Konvertieren von MatthieuWs Antwort auf Python 3 ergibt.
%Vor%Ich empfehle Ihnen, mechanize zu verwenden, es handhabt automatisch Sessions / Cookies / Logins für Sie, außerdem stellt es ein urllib- wie API und z formfüllend, damit Sie sich nicht mit der richtigen POST-Anfrage herumschlagen müssen, da sie durch mechanize konstruiert wird.
Tags und Links python authentication http post cookies