2011-02-15 19 views
7

Mirando a través de los documentos, mi primera suposición fue que llamé a urllib.request.HTTPCookieProcessor(). Cookiejar.clear(), sin embargo, eso no funcionó. Mi próxima suposición es, ¿tal vez necesito subclasificarla y construirla/instalarla con un abridor? No sé cómo hacerlo, puedo hacerlo si es necesario, por supuesto, pero realmente parece exagerado por lo que creo que debería ser una operación tan simple.Cómo borro las cookies en urllib.request (python3)

Respuesta

17

De forma predeterminada, urllib.request no almacenará ninguna cookie, por lo que no hay nada que borrar. Si construye una instancia que contiene OpenerDirector y HTTPCookieProcessor como uno de los controladores, debe borrar el cookiejar de esta instancia. 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/") 

Si desea borrar las cookies en cj, simplemente llame cj.clear().

La llamada urllib.request.HTTPCookieProcessor().cookiejar.clear() se trató creará una nueva instancia HTTPCookieProcessor que tendrá un vacío cookiejar, desactive la cookiejar (que está vacío de todos modos) y soltar todo de nuevo, ya que no almacena referencias a cualquiera de lo creado objetos, en resumen, no hará nada.

+0

Perfecto. Resulta que mi problema estaba en analizar el html, no leerlo, así que lo arreglé, pero aún así tendré que saber esto para el futuro. – kryptobs2000