Что я пытаюсь сделать, это загрузить изображения через API пользовательского интерфейса Google с помощью Python. Это мой первый раз, и, возможно, я делаю некоторые банальные ошибки, улавливающие исключения с Python.Сброс соединения с помощью Peer с модулем Python urllib
Все работает нормально, даже если у меня возникает некоторая ошибка, которая не является 10054 Connection Reset By Peer. Код что-то вроде этого, я только что из бесполезной части:
try:
urllib.request.urlretrieve(myUrl['link'],str(count)+'.jpg')
except URLError as e:
print(e.reason)
Иногда бывает так, что соединение сбрасывается пэром и консоль показывает эту ошибку.
urllib.request.urlretrieve(myUrl['link'],str(count)+'.jpg')
File "C:\Python33\lib\urllib\request.py", line 210, in urlretrieve
block = fp.read(bs)
File "C:\Python33\lib\http\client.py", line 503, in read
return super(HTTPResponse, self).read(amt)
File "C:\Python33\lib\http\client.py", line 542, in readinto
n = self.fp.readinto(b)
File "C:\Python33\lib\socket.py", line 297, in readinto
return self._sock.recv_into(b)
ConnectionResetError: [WinError 10054] An existing connection was forcibly closed by the remote host
Press any key to continue . . .
Теперь я не очень заинтересован в том, чтобы этот URL работал, но я просто хочу, чтобы мой цикл продолжал идти и не останавливался. Как я могу поймать это исключение?
Edit:
Я также заметил, что иногда код правильно перехватывает ошибку и print(e.reason)
правильно выводит [WinError 10054]
без остановки цикла. Это очень странно.
Вы знаете, вы можете копировать текст из CMD окна? Не нужно вставлять скриншоты. – mata
Просто не думал о копировании. Это против какого-то правила? В этом случае я могу редактировать. – sparaflAsh
Нет, это не против какого-либо правила, но нет смысла публиковать текст как изображение. Плюс это занимает больше места и является ссылкой на внешний ресурс (который может исчезнуть или не будет доступен ...) – mata