문제

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) 설치시 실제로 구현되지는 않습니다. 최근 버전에서 변경되었다고 생각합니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top