सबसे पहले, मेरी समस्या this one के समान है। मुझे urllib.urlopen() का एक टाइमआउट चाहिए जो एक अपवाद उत्पन्न करने के लिए है जिसे मैं संभाल सकता हूं।पायथन 3 में urllib के टाइमआउट को कैसे संभालें?
क्या यह URLError के अंतर्गत नहीं आता है?
try:
response = urllib.request.urlopen(url, timeout=10).read().decode('utf-8')
except (HTTPError, URLError) as error:
logging.error(
'Data of %s not retrieved because %s\nURL: %s', name, error, url)
else:
logging.info('Access successful.')
त्रुटि संदेश:।
resp = urllib.request.urlopen (अनुरोध, टाइमआउट = 10) .read() को डिकोड ('utf-8')
फ़ाइल "/ usr urlopen
वापसी opener.open (url, डेटा, टाइमआउट)
फ़ाइल "/usr/lib/python3.2/urllib/request.py फ़ाइल में /lib/python3.2/urllib/request.py", लाइन 138, ", लाइन 36 9, खुले
प्रतिक्रिया = self._open (req, डेटा)
फ़ाइल" _usen/lib/python3.2/urllib/request.py ", लाइन 387, _open
'_open', req)
फ़ाइल" /usr/lib/python3.2/urllib/request.py ", लाइन 347, _call_chain
परिणाम = समारोह में (* args)
फ़ाइल "/usr/lib/python3.2/urllib/request.py", लाइन 1156, http_open
वापसी self.do_open में (http.client.HTTPConnection , अनुरोध)
फ़ाइल "/usr/lib/python3.2/urllib/request.py", लाइन 1141, do_open
r = h.getresponse में()
फ़ाइल "/usr/lib/python3.2/ http/client.py ", लाइन 1046, getresponse
फिर से sponse.begin()
फ़ाइल "/usr/lib/python3.2/http/client.py", लाइन 346, में
संस्करण, स्थिति, कारण = self._read_status()
फ़ाइल "/ usr/शुरू lib/python3.2/http/client.py ", लाइन 308, _read_status
लाइन = str (self.fp.readline (_MAXLINE + 1)," आईएसओ -885 9 -1 ")
फ़ाइल"/usr/lib/python3.2/socket.py ", लाइन 276, readinto
वापसी self._sock.recv_into में (ख)
socket.timeout: टाइम आउट हो गया
एक प्रमुख चा था पायथन 3 में से nge जब उन्होंने urllib
और urllib2
मॉड्यूल को urllib
में फिर से संगठित किया। क्या यह संभव है कि एक बदलाव आया जिससे इसका कारण बनता है?
अपवाद प्रकारों को खोजने का एक आसान तरीका है 'अपवाद को छोड़कर ई: प्रिंट (प्रकार (ई)) ' । मान लीजिए कि आप अपने अपवादों को पुन: पेश कर सकते हैं, यानी। – polvoazul