Подтвердить что ты не робот

Python urllib2: Чтение содержимого тела даже во время исключения HTTPError?

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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