通过文档查看我的第一个猜测是我调用urllib.request.HTTPCookieProcessor().cookiejar.clear(),但是这不起作用.我的下一个猜测是,我可能需要将其子类化并使用开启器构建/安装它?我不知道该怎么做,如果需要的话,我当然可以,但是我认为这应该是一个简单的操作似乎有些过分.
解决方法
默认情况下,urllib.request不会存储任何cookie,因此无需清除.如果您将包含和HTTPCookieProcessor实例的OpenerDirector构建为处理程序之一,则必须清除此实例的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(无论如何都是空的)并再次删除整个内容,因为你不知道t存储对任何创建对象的引用 – 简而言之,它什么都不做.