
Hallo zusammen, ich würde gerne einen Webserver (Heizung) mit Python auslesen, bis jetzt mit HTTPDigestAuth so: url='http://xxx.xxx.xxx.xxx/api/1.0/datapoint/1' r = requests.get(url, auth=HTTPDigestAuth('user', 'passwort'), verify=False, stream=True) inhalt = r.text Funktioniert. Nun möchte ich ich aber die weiteren Punkte ohne übergabe der Benutzerdaten auslesen, quasi so: url='http://xxx.xxx.xxx.xxx/api/1.0/datapoint/2' r = requests.get(url, verify=False, stream=True) inhalt = r.text Wie stelle ich es an, das der Server sich an den vorrigen Login erinnert? Heiko

Guten Morgen, Am 13.03.24 um 22:15 schrieb Heiko Neubauer über python-de:
meistens wird doch mit einem Cookie gearbeitet. In der requests Lib gibt es das Keksglas (cookiejar). Hier ist ggf. ein Beispiel. https://scrapfly.io/blog/save-and-load-cookies-in-requests-python/ Hope it helps, Maurice -- Maurice Kemmann +49 175 721 7020 maurice@kemmann.de Messenger: Signal Social Media: LinkedIn & Xing

Am einfachsten geht das über das "Session" Objekt, siehe https://docs.python-requests.org/en/latest/user/advanced/#session-objects Ungefähr so: url='http://xxx.xxx.xxx.xxx/api/1.0/datapoint/1' with requests.Session() as sess: sess.auth = ... r = sess.get(url) Die Methoden .get()/.post() usw. werden also nicht am Request-Objekt, sondern am Session-Objekt aufgerufen. Requests kümmert sich im Hintergrund um das Speichern der Auth-Cookies. Freundliche Grüße, Hardy

Guten Morgen, Am 13.03.24 um 22:15 schrieb Heiko Neubauer über python-de:
meistens wird doch mit einem Cookie gearbeitet. In der requests Lib gibt es das Keksglas (cookiejar). Hier ist ggf. ein Beispiel. https://scrapfly.io/blog/save-and-load-cookies-in-requests-python/ Hope it helps, Maurice -- Maurice Kemmann +49 175 721 7020 maurice@kemmann.de Messenger: Signal Social Media: LinkedIn & Xing

Am einfachsten geht das über das "Session" Objekt, siehe https://docs.python-requests.org/en/latest/user/advanced/#session-objects Ungefähr so: url='http://xxx.xxx.xxx.xxx/api/1.0/datapoint/1' with requests.Session() as sess: sess.auth = ... r = sess.get(url) Die Methoden .get()/.post() usw. werden also nicht am Request-Objekt, sondern am Session-Objekt aufgerufen. Requests kümmert sich im Hintergrund um das Speichern der Auth-Cookies. Freundliche Grüße, Hardy
participants (3)
-
Hardy Erlinger
-
Heiko Neubauer
-
Maurice Kemmann