2013-10-14 48 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

我已经尝试过,并且不起作用。 –