通过文档查看我的第一个猜测是我调用urllib.request.HTTPCookieProcessor()。cookiejar.clear(),但是这不起作用。我的下一个猜测是,我可能需要将其子类化并使用开启器构建/安装它?我不知道该怎么做,如果需要的话,我当然可以,但对于我认为应该是如此简单的操作,这似乎有些过分。
答案 0 :(得分:17)
默认情况下,urllib.request
不会存储任何Cookie,因此无需清除。如果您将OpenerDirector
包含HTTPCookieProcessor
实例构建为处理程序之一,则必须清除此实例的cookiejar
。 Example from the docs:
import http.cookiejar, urllib.request
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
r = opener.open("http://example.com/")
如果您要清除cj
中的Cookie,请拨打cj.clear()
。
您尝试的来电urllib.request.HTTPCookieProcessor().cookiejar.clear()
将创建一个新的HTTPCookieProcessor
实例,该实例将为空cookiejar
,清除cookiejar
(无论如何都是空的)并放弃整个再一次,因为你不存储对任何创建对象的引用 - 所以简而言之,它什么都不做。