开放中的饼干罐使用

2024-04-24 23:54:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在有以下代码:

tw_jar = cookielib.CookieJar()
tw_jar.set_cookie(c1)
tw_jar.set_cookie(c2)

o = urllib2.build_opener( urllib2.HTTPCookieProcessor(tw_jar) )
urllib2.install_opener( o )

现在,在我的代码中,我不想使用任何cookies(同时也创建了新的cookies)。在

我可以做一个简单的tw_jar.clear()还是需要再次构建并安装打开器以除去请求中使用的所有cookie?在


Tags: install代码buildcookieopenerurllib2jartw
2条回答

如果你不想要饼干,我建议你做一个新的开场白。但是,如果出于某种原因希望保留旧的,则从处理程序列表中删除cookie处理器应该可以:

o.handlers = [h for h in o.handlers
              if not isinstance(h, urllib2.HTTPCookieProcessor)]

这是在Python安装中如何定义HTTPCookieProcessor

class HTTPCookieProcessor(BaseHandler):
  def __init__(self, cookiejar=None):
    import cookielib
    if cookiejar is None:
        cookiejar = cookielib.CookieJar()
    self.cookiejar = cookiejar

  def http_request(self, request):
    self.cookiejar.add_cookie_header(request)
    return request

  def http_response(self, request, response):
    self.cookiejar.extract_cookies(response, request)
    return response

  https_request = http_request
  https_response = http_response

由于只保存了一个引用,所以您只需操作原始的tw_jar实例,它将影响将来的所有请求。在

相关问题 更多 >