使用urllib处理Cookies

-1 投票
1 回答
2935 浏览
提问于 2025-04-15 23:00

这可能看起来是个很简单的问题,但我对为什么我会觉得这么难感到很困惑。

我想写一个函数,它需要三个输入:[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:头部字段,效果会不会好一些呢?

撰写回答