Basic: Website-Login mit User + Password

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
daniel_ice
User
Beiträge: 2
Registriert: Donnerstag 10. Mai 2018, 08:25

Hallo zusammen,

ich bin neu bei Python, habe mir schon einige YouTube Videos angeguckt und ein paar Beginner-Guides durchgelesen und Grundlagen geübt ( und die Foren-Regeln gelesen, also bitte um Mitleid :D ). Ich möchte ein kleines Script auf meiner Diskstation ( Netzwerkfestplatte die py kann) laufen lassen, welches mir meine Tageszeitung automatisch jeden morgen aus dem Internet holt und abspeichert.
Grundsätzlich scheitere ich daran, ob request, requests, urrlib, mechanize oder etwas anderes das richtige für den Login wäre. Es gibt viele Erklärungen im Netz, wie man sich auf einer Website wie google, twitter etc anmeldet, aber ich finde nirgendwo wie man herausfindet, welche Anmelde-Methode die Website verwendet ?!

Bei mir geht es um: http://e-paper.nordbayern.de/ee/nn/pdf/

Dort muss ich mich jeden morgen anmelden und mein PDF runterladen. Das möchte ich automatisieren. Meine Idee war, mit "bs4" den Inhalt zu durchsuchen und den Downloadlink auszuführen. Aber ich scheitere aktuell beim Login. :K
Kann mir jemand Tipps geben wie ich da weiter komme ?

Danke & sonnigen Feiertag,
Daniel
Benutzeravatar
sls
User
Beiträge: 480
Registriert: Mittwoch 13. Mai 2015, 23:52
Wohnort: Country country = new Zealand();

Dazu würde ich mich in das Requests-Modul einlesen. Was du vorhast ist normales web scraping, wie man einem requests-Objekt Daten zur Authentifizierung mitliefert wird in der ausführlichen Dokumentation beschrieben.

Den Inhalt einer Website kannst dazu untersuchen, o.g. URL leitet zur Authentifizierung hier hin:

https://sso.nordbayern.de/oauth2/author ... ookpdf.php

Das wäre also mal ein URL den du mittels requests.get/post() verwenden kannst, mit einem Rechtsklick auf das Login-Fenster siehst du dann im DOM der Seite entsprechende Parameter, die du als payload in einem JSON-Objekt mitliefern kannst, z.B. so:

Code: Alles auswählen

auth = {"inputLogin": EMAIL, "inputPass": PASSWORT}
Ich würde mich da einfach mal ein wenig einlesen und herumspielen, man kriegt dann ein Gefühl dafür und erkennt was der Webserver für Informationen von dir benötigt, damit du dich erfolgreich authentifizieren kannst.
When we say computer, we mean the electronic computer.
daniel_ice
User
Beiträge: 2
Registriert: Donnerstag 10. Mai 2018, 08:25

vielen Dank für die Antwort !
Das Einloggen funktioniert jetzt schon mal - zumindest kommt keine Fehlermeldung mehr und ich bekomme den Status 200 zurück gegeben. :)

Aber nun muss ich den Token noch auslesen nach dem Login .... das ist meine nächste Herausforderung der ich mich stelle :-)
Antworten