Öncelikle benim sorunum this one'a oldukça benziyor. Işleyebileceğim bir özel durum oluşturmak için urllib.urlopen() bir zaman aşımı istiyorum.Python 3'te urllib zaman aşımı nasıl yapılır?
Bu, URLError'un altına düşmez mi?
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.')
hata iletisi.
solunum = urllib.request.urlopen (req, zaman aşımı = 10) .read() ('UTF-8')
Dosya "şifresini çözmek/usr /lib/python3.2/urllib/request.py ", satır 138, urlopen içinde
dönüş opener.open (url, veriler, zaman aşımı)
Dosya" /usr/lib/python3.2/urllib/request.py ", satır 369, açık olarak
yanıtı = self._open (req, veri)
Dosya" /usr/lib/python3.2/urllib/request.py ", satır 387, _open
'_open', req)
Dosya" /usr/lib/python3.2/urllib/request.py ", satır _call_chain
sonuç = fonksiyon içinde 347, (* args) http_open
dönüş self.do_open içinde
Dosya "/usr/lib/python3.2/urllib/request.py", hat 1156, (http.client.HTTPConnection do_open
r = h.getresponse olarak, Tlp)
Dosya "/usr/lib/python3.2/urllib/request.py", hat 1141,()
Dosya "/usr/lib/python3.2/ http/client.py ", satır 1046, getresponse içinde
re sponse.begin()
Dosya "/usr/lib/python3.2/http/client.py", hat 346, içinde
sürümü, statü, sebebi = self._read_status()
Dosya "/ usr/başlamak lib/python3.2/http/client.py ", satır 308, içinde _read_status
satır = str (self.fp.readline (_MAXLINE + 1)," iso-8859-1 ")
Dosya"/usr/readinto
dönüş self._sock.recv_into içinde lib/python3.2/socket.py", hat 276, (b)
socket.timeout: büyük cha vardı
zaman aşımına urllib
ve urllib2
modüllerini urllib
'a yeniden düzenlediklerinde Python 3'ün içinden nge. Buna sebep olan bir değişiklik oldu mu?
İstisna türlerini keşfetmenin kolay bir yolu, "İstisna olarak e: print (type (e)) . İstisnalarınızı çoğaltabileceğinizi varsayarsak, yani. – polvoazul