Уведомления

Группа в Telegram: @pythonsu

#1 Июль 16, 2011 14:47:26

AndreyCV
От:
Зарегистрирован: 2011-07-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вытащить куки

import urllib
import urllib2
import cookielib

page_address="http://www.*****.com/login.html"
cookie_handler = urllib2.HTTPCookieProcessor(cookielib.CookieJar())
redirect_handler = urllib2.HTTPRedirectHandler()
http_handler = urllib2.HTTPHandler()
https_handler = urllib2.HTTPSHandler()
# Загружаем хэндлеры в opener
opener = urllib2.build_opener(http_handler, https_handler, cookie_handler, redirect_handler)
# подключаем прокси
proxy_handler = urllib2.ProxyHandler(proxies)
opener.add_handler(proxy_handler)
# Устанавливаем заголовок User-agent
opener.addheaders = [('User-agent', useragent)]
urllib2.install_opener(opener)
params = urllib.urlencode({'user':login,'pass':password,'backfromssl':0,'refer':''})
request = urllib2.Request(page_address, params)
f = urllib2.urlopen(request)
Как вытащить кукисы с этого куска. Раньше вытаскивал так
cookie = unicode(f.headers['Set-Cookie'], 'cp1251')
# получаем значение cookie (например, id сессии):
matches = re.findall('(?si)SID=(.*?);', cookie)
cookie = matches[0]
print cookie
но почему то буквально с неделю перестало работать и выдает ошибку
File “C:\Python26\lib\rfc822.py”, line 388, in __getitem__
return self.dict
KeyError: ‘set-cookie’



Офлайн

#2 Июль 16, 2011 18:57:42

dimabest
От:
Зарегистрирован: 2009-02-12
Сообщения: 253
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вытащить куки

Вытаскивать куки лучше всего из объекта класса CookieJar, который куками заведует.

Заменяем строку

cookie_handler   = urllib2.HTTPCookieProcessor(cookielib.CookieJar())
на
cj = cookielib.CookieJar()
cookie_handler = urllib2.HTTPCookieProcessor(cj)
После запроса к сайту пробегаемся по кукам:
for cookie in cj:
if cookie.name == 'SID':
print cookie.value



Офлайн

#3 Июль 18, 2011 12:42:14

AndreyCV
От:
Зарегистрирован: 2011-07-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вытащить куки

Большое спасибо, все работает нормально. Единственно что остается для меня загадкой почему пол года моя конструкция работала нормально, и потом неожиданно перестала :/



Офлайн

#4 Июль 27, 2011 01:11:36

alexandre
От:
Зарегистрирован: 2010-11-16
Сообщения: 104
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вытащить куки

Версия питона менялась? :)



Офлайн

#5 Июль 28, 2011 13:47:04

AndreyCV
От:
Зарегистрирован: 2011-07-16
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Как вытащить куки

alexandre
Версия питона менялась? :)
Да нет, как была 2.6 так и осталась. Обновления тоже не делал.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version