2013-03-17 18 views
5

發送請求到服務器如何設置在python餅乾機械化

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

我得到的迴應稱號,這已設置cookie的

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

後由於機械化似乎無法記住該cookie,所以我想爲br設置cookie。我該怎麼做?

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 2013-03-17 11:20:16

+0

還有另一種方法來設置cookiejar:請參閱[本文](http://stackoverflow.com/a/6681299/190597)。 – unutbu 2013-03-17 12:37:05

+0

@unutbu我認爲這是鏈接(http://stackoverflow.com/questions/3596857/how-do-i-manually-add-more-cookies-to-a-session-which-already-has-cookies設置],你打算給。 – rapvelopment 2013-12-08 00:26:08

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方法手動添加預先存在的cookie。

br.addheaders = [('Cookie','cookiename=cookie value')]