Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > de.comp.lang.python > #6042
| From | Hardy Erlinger <hardy.erlinger@posteo.de> |
|---|---|
| Newsgroups | de.comp.lang.python |
| Subject | [Python-de] Re: Webserver auslesen |
| Date | 2024-03-15 09:02 +0000 |
| Message-ID | <9920c910ae3b61290e5c3170cb04d18f@posteo.de> (permalink) |
| References | <ust528U32u1iL1@usenet.in-ulm.de> <8aaae97d-01b5-4500-a87f-bd8f60767d47@kemmann.de> |
>> 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?
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
Back to de.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
Webserver auslesen Heiko Neubauer <heiko.neubauer@gmx.de> - 2024-03-13 22:15 +0100
[Python-de] Re: Webserver auslesen Maurice Kemmann <maurice@kemmann.de> - 2024-03-14 07:55 +0100
[Python-de] Re: Webserver auslesen Hardy Erlinger <hardy.erlinger@posteo.de> - 2024-03-15 09:02 +0000
Re: [Python-de] Re: Webserver auslesen Heiko Neubauer <heiko.neubauer@gmx.de> - 2024-03-15 12:43 +0100
csiph-web