【发布时间】:2013-07-03 15:39:28
【问题描述】:
我正在尝试使用 Python 通过 Google 自定义搜索 API 下载图像。这是我第一次,也许我在用 Python 捕捉异常时犯了一些平庸的错误。
即使我遇到一些不是 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 正常工作并不感兴趣,但我只想让我的循环继续进行而不是停止。我怎样才能捕捉到这个异常?
编辑:
我还注意到,有时代码会正确捕获错误并且print(e.reason) 正确输出[WinError 10054] 而不会停止循环。这很奇怪。
【问题讨论】:
-
你知道你可以从 cmd windows 复制文本吗?无需粘贴屏幕截图。
-
只是没想过抄袭。是否违反某些规则?在那种情况下我肯定可以编辑。
-
不,这不违反任何规则,但是将文本作为图像发布确实没有意义。此外,它需要更多空间,并且是指向外部资源的链接(可能会消失或不可用......)
-
好的,刚刚又抓到并编辑了问题。那应该解决它。感谢您指出。
标签: python python-3.x urllib google-custom-search