2011-02-15 5 views
7

처음에는 내 urllib.request.HTTPCookieProcessor(). cookiejar.clear()를 호출했지만 그 방법은 작동하지 않았습니다. 내 다음 추측은 어쩌면 그것을 서브 클래스 화하고 오프너로 빌드/설치해야 할 필요가 있을까요? 나는 그 일을하는 법을 알지 못합니다. 물론 필요한 경우에는 할 수 있습니다. 그러나 그렇게 간단한 조작이어야한다고 생각하는 것에 대해서는 과잉이라고 생각됩니다.urllib.request (python3)에서 쿠키를 지우는 방법

답변

17

기본적으로 urllib.request은 쿠키를 저장하지 않으므로 지울 내용이 없습니다. OpenerDirectorHTTPCookieProcessor 인스턴스를 처리기 중 하나로 구축하면이 인스턴스의 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에서 쿠키를 삭제하려면, 단지 cj.clear()를 호출합니다.

당신이 빈 cookiejar을하는 새로운 HTTPCookieProcessor 인스턴스를 생성합니다 시도 호출 urllib.request.HTTPCookieProcessor().cookiejar.clear(), 지우 cookiejar (어쨌든 비어있는) 당신이 생성 된 모든 참조를 저장하지 않기 때문에, 다시 전체를 드롭 객체들 - 간단히 말해, 아무것도하지 않을 것입니다.

+0

Perfect. 내 문제가 밝혀지면 html을 파싱하는 것이었지만 그것을 읽지는 않았다. 그래서 나는 그것을 고쳤다. 그러나 여전히 미래를 알 필요가있다. – kryptobs2000