2009-11-02 7 views
51

urllib2를 사용하여 HTTP를 통해 페이지를 가져옵니다. 내 요청에 오류가 포함 된 경우 때때로 리소스에서 HTTP 오류 400 (잘못된 요청)이 발생합니다. 그러나 해당 응답에는 자세한 오류 메시지를 제공하는 XML 요소도 포함되어 있습니다. urllib2가 반환 한 HTTPError 예외가 아니라 그 오류를 볼 수 있다면 매우 편리 할 것입니다.Python urllib2 : HTTPError 예외 도중 내용 본문 읽기?

예외는 있지만 어떻게 문서 콘텐츠를 반환합니까?

답변

43

오류를 응답으로 처리 할 수 ​​있습니다.

오류가 HTTP 오류 코드와 오류 페이지를 반환하여 서버를 응답을 발생

http://www.voidspace.org.uk/python/articles/urllib2.shtml#httperror

. HTTPError 인스턴스를 페이지의 응답으로 사용할 수 있습니다. 즉, 코드 속성뿐만 아니라 에는 read, geturl 및 info 메소드가 있습니다.

60
import urllib2 
try: 
    request = urllib2.Request('http://www.somesite.com') 
    response = urllib2.urlopen(req) 
except urllib2.HTTPError as e: 
    error_message = e.read() 
    print error_message