Python Login auf Website

Lockedoor

Lieutenant
Registriert
Sep. 2008
Beiträge
676
Hallo ihr Python-Profis,

ich habe folgendes Problem:
Ich möchte ein kleines (mein erstes richtig eigenes ;) ) Script schreiben, um mir automatisch meinen Notendurchschnitt auszurechnen.
Dafür muss ich mich auf dem Portal meiner Universität (portal.uni-mannheim.de) einloggen. Meine ersten Versuche habe ich mit "requests" gemacht, aber irgendwie scheint das ganze nicht so richtig zu funktionieren. Das einloggen klappt irgendwie nicht. Ich nehme an, ich muss den Sessioncookie, der nach dem anmelden verteilt wird, irgendwie mitschleifen - aber wie das ganze funktioniert ist mir noch nicht ganz klar. Hat hier jemand evtl. Ratschläge bzw. ein Nachschlagewerk, dass er empfehlen kann..?

Ich freue mich auf konstruktive Antworten! =)
lG
Lockedoor
 
Auch wenns blöd klingt. Nimm Selenium und speicher dir das Skript ab, das dürfte wahrscheinlich schneller gehen als ein großes Skript zu schreiben ;)
 
Erstmal vielen Dank für dein feedback! Allerdings geht es mir ja nicht unbedingt in erster Linie um die Funktionalität, sondern vor allem um die Übung mit Python... Daher ist Selenium nicht unbedingt eine Alternative für mich.

Ich bin mittlerweile allerdings schon etwas weiter:
Ich klicke mich grade durch mechanize und habe den login (Scheinbar) hinbekommen. Ich kann mich auf den Seiten des Portals bewegen, doch wenn ich die Seite anzeigen möchte, auf der meine Noten angezeigt werden erhalte ich einen
"mechanize._response.httperror_seek_wrapper: HTTP Error 500: Internal Server Error"
Alle anderen Seiten kann ich via br.open() ohne Probleme abrufen... Jemand eine Idee woran das liegen könnte?
 
@SymA:
Am besten mit ner Art von ${Durchschnitt} Should Be Lower Than 1,7 damits auch nen Fail schmeißt wenn er zu schlecht wird :D

Aber stimm dir zu, da ich selber grad mit Selenium arbeite, geht easy und zuverlässig wenn mans beherrscht. Kommt zwar drauf an wie die Seite aufgebaut is aber bei entsprechender Anpassung sollte das locker gehen das als Grundlage zu nehmen.

EDIT: darf nach Ermessen des TE ignoriert werden^^

@TE:
hab hier mal was gefunden:
http://stackoverflow.com/questions/17471579/trying-to-login-to-quora-using-mechanize

Selbst dort scheinen die Leute keine Lösung zu finden und schlagen Selenium vor. Kann durchaus sein, dass diese Seite Bots nicht erlaubt und du da irgendwie die Identität vorheucheln musst, wie das geht weiß ich allerdings nicht. Ist aber eventuell ein Ansatzpunkt für dich ;)
 
Zuletzt bearbeitet:
@TE:
Klar versteh ich dass es eine Übung sein soll, aber du tust dir mit dieser Aufgabenstellung echt keinen Gefallen ;) - ich würde mit was einfacherem anfangen.
 
http://stockrt.github.io/p/emulating-a-browser-in-python-with-mechanize/

Ich kann mir zwar nicht vorstellen, dass die Seite erkennt, dass du ein Bot "bist", aber kannst ja mal versuchen den User-Agent zu setzen.

Wobei ein Fehler 500 eher auf einen Fehler der Gegenseite schließen lässt (sonst müsstest du ja einen Fehler 403 Forbidden bekommen).

Viel Erfolg.
 
Hi!
Danke für eure Mithilfe, ich bin mittlerweile sowie, dass ich den Source-Code der Seite die ich brauche, auslesen kann.
Das Problem mit dem Internal Server Error, lag am URL Encoding des Links im Sourcecode. "&"s wurden da zu "&", was im mechanize Browser dann natürlich nicht mehr funktioniert hat.
Vielen Dank für die Tipps von euch! =)
 
Zurück
Oben