Wie kann die Cookie-Behandlung mit der Bibliothek für Python-Anfragen deaktiviert werden?

8

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%     
raben 11.06.2013, 06:20
quelle

4 Antworten

8

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%     
Mechanical snail 11.02.2014, 22:34
quelle
2
%Vor%     
falsetru 11.06.2013 08:08
quelle
0

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.

%Vor%     
radu.ciorba 11.06.2013 07:10
quelle
0
%Vor%     
miracle2k 22.10.2013 21:51
quelle

Tags und Links