Python urllib2: Inhaltstext auch während einer HTTPError-Ausnahme lesen?


76

Ich benutze urllib2, um eine Seite über HTTP abzurufen. Manchmal löst die Ressource einen HTTP-Fehler 400 (Bad Request) aus, wenn meine Anfrage einen Fehler enthält. Diese Antwort enthält jedoch auch ein XML-Element, das eine detaillierte Fehlermeldung ausgibt. Es wäre sehr praktisch, diesen Fehler zu sehen und nicht nur die von urllib2 zurückgegebene HTTPError-Ausnahme.

Wie kann ich den Dokumentinhalt trotz der Ausnahme zurückgeben?


Antworten:



87
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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.