20 Stimmen

Abrufen aller Cookies in Python

Wie kann ich alle Cookies in Python zurücklesen, ohne ihre Namen zu kennen?

4 Stimmen

Wenn Sie sagen "zurücklesen", meinen Sie a) sie aus einer HTTP-Antwort lesen oder b) sie aus dem CookieJar lesen? Oder gibt es eine (c) Interpretation?

0 Stimmen

Es gibt auch ein (c) :) c_1) Jemand könnte nach den Cookies von SEINER Python-Sitzung fragen... Z.B. wenn das Python-Skript ein .cgi ist (siehe z.B. os.environ['HTTP_COOKIE'] Antwort von Matt Lacey, abhängig vom Webserver, der für das cgi verwendet wird) c_2) Dieselbe Frage, wenn es sich um ein Notebook handelt, das in Jupyter läuft (Webserver ist Tornado)

24voto

JaseAnderson Punkte 2885

Ich bin nicht sicher, ob es das ist, wonach Sie suchen, aber hier ist ein einfaches Beispiel, bei dem Sie Cookies in ein Cookiejar legen und sie zurücklesen:

from urllib2 import Request, build_opener, HTTPCookieProcessor, HTTPHandler
import cookielib

#Create a CookieJar object to hold the cookies
cj = cookielib.CookieJar()
#Create an opener to open pages using the http protocol and to process cookies.
opener = build_opener(HTTPCookieProcessor(cj), HTTPHandler())

#create a request object to be used to get the page.
req = Request("http://www.about.com")
f = opener.open(req)

#see the first few lines of the page
html = f.read()
print html[:50]

#Check out the cookies
print "the cookies are: "
for cookie in cj:
    print cookie

6voto

Matt Lacey Punkte 64983

Setzen Sie os.environ['HTTP_COOKIE'] in ein Array:

#!/usr/bin/env python

import os

 if 'HTTP_COOKIE' in os.environ:
  cookies = os.environ['HTTP_COOKIE']
  cookies = cookies.split('; ')
  handler = {}

  for cookie in cookies:
   cookie = cookie.split('=')
   handler[cookie[0]] = cookie[1]

5voto

A Magoon Punkte 1120

Dies könnte genau das sein, wonach Sie suchen.

Python 3.4

import requests

r = requests.get('http://www.about.com/')
c = r.cookies
i = c.items()

for name, value in i:
    print(name, value)

4voto

Alex Martelli Punkte 805329

Sehen Sie sich die Cookie: Header in der HTTP-Antwort, die Sie erhalten, analysieren Sie deren Inhalt mit dem Modul Cookie in der Standardbibliothek.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X