2013-10-14 49 views
0

我正在使用python urllib2來下載網頁。但是有一個讓我困惑的問題。我想設置一個cookie,但我不知道如何做到這一點。我可以只使用CookieJar,或者可以嘗試其他方式來解決我的問題。謝謝。如何手動在urllib2中設置Cookie?

這裏是我的代碼:

def http_get(uri, params, previous_url): 
    cj = cookielib.CookieJar() 
    opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 
    urllib2.install_opener(opener) 
    opener.handle_open["http"][0].set_http_debuglevel(1) 
    user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36' 
    opener.addheaders.append(('Cookie','RT=Some Values')) 
    opener.addheaders.append(('User-Agent', user_agent)) 
    opener.addheaders.append(('Referer', previous_url)) 
    opener.addheaders.append(('Accept', '*/*')) 
    opener.addheaders.append(('Accept-Encoding', 'gzip,deflate,sdch')) 
    url_values = urllib.urlencode(params) 
    request_uri = uri + '?' + url_values  
    request = urllib2.Request(request_uri) 
    response = opener.open(request_uri) 
    return response, request_uri 

我不知道哪裏錯了,請幫忙!

+0

你'.append((「曲奇」,...'你代碼? – Blender

+0

是的。它可以工作嗎? –

回答

0

沒有你的代碼的工作,我認爲你沒有使用CookieJar.Usually代碼應該是:?

opener = urllib2.build_opener() 
opener.addheaders.append(('Cookie', 'RT=Some Values')) 
#request_uri = ...... 
response = opener.open(request_uri) 
print response.read() 
+0

我已經嘗試過,並且不起作用。 –