2014-01-03 7 views
3

Я новичок в скрипте cgi python. Я хочу прочитать cookie в python. Я попытался следующий код:Как читать cookie в python

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()) 

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

Но, я вижу только the cookies are: Сообщ.

Я что-то не так?

+0

возможно дубликат [Получение всех Cookies в Python] (HTTP://stackoverflow.com/questions/921532/retrieving-all-cookies-in-python) –

ответ

4

Попробуйте это прочитать куки в Python:

#!/usr/bin/python 

import os 

# Hello world python program 
print "Content-Type: text/html;charset=utf-8"; 
print 

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

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

for k in handler: 
    print k + " = " + handler[k] + "<br> 
+0

Спасибо, это сработало. – rpdev123

0

Если вы не используете opener, кукуруза не заполняется.

Доступ к веб-странице, которая выпускает Set-Cookie header.

Например:

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()) 

response = opener.open('http://google.com/') # <--- 
response.read() 

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

печатает

the cookies are: 
<Cookie NID=67=aBkBw0UEgv... for .google.co.kr/> 
<Cookie PREF=ID=b99fae87d... for .google.co.kr 
<Cookie NID=67=c8QgK_rfyf... for .google.com/> 
<Cookie PREF=ID=dbb574e7d... for .google.com/> 
+0

По-прежнему доступны только сообщения «cookie:»: pearing. re "opener.open ('http://google.com/')", здесь "http://google.com/" будет моим сайтом. Верный? – rpdev123

+0

@ rpdev123, выводит ли ваш сайт заголовок «Set-Cookie»? Сначала попробуйте сначала с помощью http: // google.com /. Затем попробуйте URL-адрес своего веб-сайта. (Убедитесь, что ваш сайт создает куки.) – falsetru

+0

Все еще не работает. re «Создается ли на вашем веб-сайте Set-Cookie заголовок?», что с этим делать? – rpdev123

Смежные вопросы