2011-02-15 47 views
7

通過文檔查看我的第一個猜測是我調用urllib.request.HTTPCookieProcessor().cookiejar.clear(),但是這並不起作用。我的下一個猜測是我可能需要繼承它並使用opener來構建/安裝它?我不知道該怎麼做,如果需要的話,我可以,當然,但我覺得應該是這麼簡單的操作,看起來真是太過分了。如何清除urllib.request(python3)中的cookie

回答

17

默認情況下,urllib.request不會存儲任何cookie,所以沒有什麼可以清除的。如果構建一個包含OpenerDirector的實例作爲其中一個處理程序,則必須清除此實例的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/") 

如果你想清除cookies在cj,只需調用cj.clear()

你試過將創建一個新HTTPCookieProcessor實例,該實例將有一個空cookiejar呼叫urllib.request.HTTPCookieProcessor().cookiejar.clear(),清除cookiejar(裏面是空的反正),並再次下降了整個事情,因爲你不引用存儲到任何創建的對象 - 所以簡言之,它什麼都不會做。

+0

完美。原來我的問題是解析html,沒有閱讀它,所以我解決了它,但我仍然需要知道這個未來。 – kryptobs2000 2011-02-16 05:35:38