查看文档,我的第一个猜测是我调用了 urllib.request.HTTPCookieProcessor().cookiejar.clear(),但是这不起作用。我的下一个猜测可能是我需要将它子类化并使用 opener 构建/安装它?我不知道该怎么做,如果需要的话我当然可以,但对于我觉得应该是这样一个简单的操作来说,这似乎有点矫枉过正。

最佳答案

默认情况下,urllib.request将不存储任何cookie,因此没有要清除的内容。如果您将包含OpenerDirector实例的HTTPCookieProcessor构建为处理程序之一,则必须清除该实例的cookiejarExample 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(无论如何都是空的)并再次删除整个内容,因为您不存储对任何已创建对象的引用-因此简而言之,它什么也不会做。

10-06 15:48