使用urllib处理Cookies
这可能看起来是个很简单的问题,但我对为什么我会觉得这么难感到很困惑。
我想写一个函数,它需要三个输入:[url, data, cookies],这个函数会使用urllib(不是urllib2)来获取请求的url的内容。我以为这很简单,所以我写了下面的代码:
def fetch(url, data = None, cookies = None):
if isinstance(data, dict): data = urllib.urlencode(data)
if isinstance(cookies, dict):
# TODO: find a better way to do this
cookies = "; ".join([str(key) + "=" + str(cookies[key]) for key in cookies])
opener = urllib.FancyURLopener()
opener.addheader("Cookie", cookies)
obj = opener.open(url, data)
result = obj.read()
obj.close()
return result
但据我所知,这个代码并不能正常工作(有人能确认一下吗?)我现在卡住了。
1 个回答
1
你没有说你尝试的时候出了什么问题,也没有说明你在用哪个http服务器进行测试。请求完成了吗?服务器有没有识别你的cookies?我注意到的一点是,你可能把多个cookies放在了一个头部字段里。如果你使用单独的Cookie:
头部字段,效果会不会好一些呢?