python - Urllib2 ओवरराइड करना। एचटीटीपी त्रुटि या urllib.error.HTTP त्रुटि और प्रतिक्रिया एचटीएमएल वैसे भी




http-error (2)

यदि आपका मतलब है कि आप 500 के शरीर को पढ़ना चाहते हैं:

request = urllib2.Request(url, data, headers)
try:
        resp = urllib2.urlopen(request)
        print resp.read()
except urllib2.HTTPError, error:
        print "ERROR: ", error.read()

आपके मामले में, आपको अनुरोध का निर्माण करने की आवश्यकता नहीं है। बस करो

try:
        resp = urllib2.urlopen(url)
        print resp.read()
except urllib2.HTTPError, error:
        print "ERROR: ", error.read()

इसलिए, आप urllib2 को ओवरराइड नहीं करते हैं। एचटीटीपी त्रुटि, आप बस अपवाद को संभालते हैं।

मुझे 'HTTP त्रुटि 500: आंतरिक सर्वर त्रुटि' प्रतिक्रिया प्राप्त होती है, लेकिन मैं अभी भी त्रुटि HTML के अंदर डेटा को पढ़ना चाहता हूं।

पायथन 2.6 के साथ, मैं आमतौर पर एक पेज का उपयोग कर लाता हूं:

import urllib2
url = "http://google.com"
data = urllib2.urlopen(url)
data = data.read()

असफल यूआरएल पर इसका उपयोग करने का प्रयास करते समय, मुझे अपवाद urllib2.HTTPError मिलता है। urllib2.HTTPError :

urllib2.HTTPError: HTTP Error 500: Internal Server Error

मैं ऐसे त्रुटि पृष्ठों को कैसे प्राप्त कर सकता हूं ( urllib2 साथ या बिना), जब वे आंतरिक सर्वर त्रुटियों को वापस कर रहे हों?

ध्यान दें कि पायथन 3 के साथ, संबंधित अपवाद urllib.error.HTTPError


HTTPError एक फ़ाइल जैसी वस्तु है । आप इसे पकड़ सकते हैं और फिर इसकी सामग्री read सकते हैं।

try:
    resp = urllib2.urlopen(url)
    contents = resp.read()
except urllib2.HTTPError, error:
    contents = error.read()




http-error