Python urllib2: чтение содержимого содержимого даже во время исключения HTTPError? - PullRequest
68 голосов
/ 03 ноября 2009

Я использую urllib2 для получения страницы через HTTP. Иногда ресурс выдает ошибку HTTP 400 (неправильный запрос), когда мой запрос содержит ошибку. Однако этот ответ также содержит элемент XML, который выдает подробное сообщение об ошибке. Было бы очень удобно видеть эту ошибку, а не только исключение HTTPError, возвращаемое urllib2.

Как вернуть содержимое документа, несмотря на исключение?

Ответы [ 2 ]

79 голосов
/ 03 ноября 2009
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
51 голосов
/ 03 ноября 2009

Вы можете рассматривать ошибку как ответ.

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

При возникновении ошибки сервер отвечает, возвращая ошибку HTTP код и страница ошибки. Ты можешь использовать экземпляр HTTPError в качестве ответа на страницу вернулась. Это означает, что а также атрибут кода, это также прочитал, geturl и info, методы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...