2013-03-17 3 views
5

После отправки запроса на серверкак установить кук в питоне механизировать

br.open('http://xxxx') 
    br.select_form(nr=0) 
    br.form['MESSAGE'] = '1 2 3 4 5' 
    br.submit() 

я получаю название ответа, который установил-печенье

Set-Cookie: PON=xxx.xxx.xxx.111; expires=Tue, 17-Mar-2015 00:00:00 GMT; path=/ 

Поскольку Mechanize, кажется, не в состоянии запомнить cookie, поэтому я хочу установить cookie для br. Как мне это сделать?

cj = mechanize....? 
    br.set_cookiejar(cj) 

Я понятия не имею. Пожалуйста, помогите

ответ

1
import mechanize 
import cookielib 

br = mechanize.Browser() 
cj = cookielib.CookieJar() 
br.set_cookiejar(cj) 
+0

спасибо. Я попробовал это, прежде чем отправил свой вопрос. Это не работает. Я думаю, мне нужно передать Set-Cookie: PON = xxx.xxx.xxx.111 на br. Но я не знаю, как это сделать. – John

+0

Существует еще один способ установить cookiejar: см. [Этот пост] (http://stackoverflow.com/a/6681299/190597). – unutbu

+0

@unutbu Я думаю, что это ссылка (http://stackoverflow.com/questions/3596857/how-do-manual-add-more-cookies-to-a-session-which-already-has-cookies -set-in], который вы намеревались дать. – rapvelopment

4

Я думаю, что это должно делать то, что вы хотите:

import Cookie 
import cookielib 
cookiejar =cookielib.LWPCookieJar() 

br = mechanize.Browser() 
br.set_cookiejar(cookiejar) 
cookie = cookielib.Cookie(version=0, name='PON', value="xxx.xxx.xxx.111", expires=365, port=None, port_specified=False, domain='xxxx', domain_specified=True, domain_initial_dot=False, path='/', path_specified=True, secure=True, discard=False, comment=None, comment_url=None, rest={'HttpOnly': False}, rfc2109=False) 
cookiejar.set_cookie(cookie) 
3

вы можете также добавить существовавшие ранее куки вручную с помощью метода addheaders из класса браузера механизировать в.

br.addheaders = [('Cookie','cookiename=cookie value')] 
Смежные вопросы