Python 3 urllib의 디버그 출력을 켜십시오
-
16-09-2019 - |
문제
Python 2에서는 Urllib에서 디버그 출력을 얻을 수있었습니다.
import httplib
import urllib
httplib.HTTPConnection.debuglevel = 1
response = urllib.urlopen('http://example.com').read()
그러나 Python 3에서는 이것이 이동 한 것처럼 보입니다.
http.client.HTTPConnection.set_debuglevel(level)
그러나 http.client가 아닌 urllib을 사용하고 있습니다. HTTP 요청 표시 디버깅 정보를 이러한 방식으로 디버깅하는 데 어떻게 설정할 수 있습니까?
여기에 내가 지금까지 사용하고있는 것은 다음과 같습니다. 디버그 정보를 얻을 수 있다면 진행하는 가장 좋은 방법은 무엇입니까?
#Request Login page
cookiejar = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookiejar))
request = urllib.request.Request(options.uri)
add_std_headers(request)
response = opener.open(request)
response_string = response.read().decode("utf8")
# ...
해결책
당신이 처음이었습니다. 라인을 추가 할 수 있습니다 http.client.HTTPConnection.debuglevel = 1
파일이 시작될 때 HTTP 디버깅 응용 프로그램 전체를 켜십시오. urllib.request
여전히 사용합니다 http.client
.
단일 핸들러에 대한 디버그 레벨을 설정하는 방법도있는 것 같습니다 (생성을 통해 urllib.request.HTTPHandler(debuglevel=1)
그리고 그와 함께 오프너를 구축) 그러나 Python3 (3.0b3) 설치시 실제로 구현되지는 않습니다. 최근 버전에서 변경되었다고 생각합니다!
제휴하지 않습니다 StackOverflow