Wenn ich Anfragen für den Zugriff auf eine URL verwende werden Cookies automatisch an den Server zurückgeschickt (im folgenden Beispiel setzt die angeforderte URL einige Cookie-Werte und leitet sie dann an eine andere URL weiter, die den gespeicherten Cookie anzeigt)
%Vor%Ist es möglich, die Cookie-Behandlung auf dieselbe Weise temporär zu deaktivieren, wie Sie Chrome oder Firefox so eingestellt haben, dass keine Cookies akzeptiert werden?
Wenn ich zum Beispiel auf die oben erwähnte URL mit Chrome zugreife und die Cookiebehandlung deaktiviert wäre, bekomme ich das, was ich erwartet habe:
%Vor%Sie können dies tun, indem Sie eine Cookie-Richtlinie definieren, um alle Cookies abzulehnen:
%Vor% (Beachten Sie, dass die API von http.cookiejar
erfordert, dass Sie eine Reihe von Attributen und Methoden definieren, wie gezeigt.)
Legen Sie dann die Cookie-Richtlinie für Ihre Requests-Sitzung fest:
%Vor%Es werden jetzt keine Cookies gespeichert oder gesendet:
%Vor% Wenn Sie sich den Code ansehen, konstruieren die Convenience-Methoden im Paket requests
(im Gegensatz zu denen in einem Objekt requests.Session
) jedes Mal ein neues Session
. Daher bleiben Cookies zwischen einzelnen Aufrufen von requests.get
nicht erhalten. Wenn jedoch die erste Seite Cookies setzt und dann eine HTTP-Weiterleitung ausgibt, werden auf der Zielseite die Cookies angezeigt. (Dies geschieht mit dem Aufruf HTTPBin /cookies/set
, der zu /cookies
umleitet.)
Je nachdem, welches Verhalten für Weiterleitungen gewünscht wird, müssen Sie möglicherweise nichts Besonderes tun. Vergleichen Sie:
%Vor% Sie erhalten "k2": "v2", "k1": "v1"
zurück, weil sie in GET-Parametern gesendet werden. Wenn Sie eine zweite Anfrage verfolgen, sehen Sie, dass Sie keine Cookies senden. Es sei denn, Sie verwenden requests.Session
Cookies werden nicht automatisch im Client verarbeitet und Sie müssen bei jeder Anfrage explizit ein dict oder CookieJar übergeben.
Tags und Links python cookies python-requests