Python 如何处理urllib2套接字超时?
因此,以下内容适用于已超时的其他链接,并继续用于循环中的下一个链接。然而,对于这个链接,我得到了一个错误。我不知道这是为什么,以及如何修复它,以便当它发生时,它只是浏览到下一个图像Python 如何处理urllib2套接字超时?,python,exception,urllib2,urllib,continue,Python,Exception,Urllib2,Urllib,Continue,因此,以下内容适用于已超时的其他链接,并继续用于循环中的下一个链接。然而,对于这个链接,我得到了一个错误。我不知道这是为什么,以及如何修复它,以便当它发生时,它只是浏览到下一个图像 try: image_file = urllib2.urlopen(submission.url, timeout = 5) with open('/home/mona/computer_vision/image_retrieval/images/' + category
try:
image_file = urllib2.urlopen(submission.url, timeout = 5)
with open('/home/mona/computer_vision/image_retrieval/images/'
+ category + '/'
+ datetime.datetime.now().strftime('%y-%m-%d-%s')
+ submission.url[-5:], 'wb') as output_image:
output_image.write(image_file.read())
except urllib2.URLError as e:
print(e)
continue
错误是:
[LOG]完成获取http://i.imgur.com/b6fhEkWh.jpg
提交id为:1skepf
[日志]正在获取url:http://www.redbubble.com/people/crtjer/works/11181520-bling-giraffe
[日志]正在获取url:http://www.youtube.com/watch?v=Y7iuOZVJhs0
[日志]正在获取url:http://imgur.com/8a62PST
[日志]正在获取url:http://www.youtube.com/watch?v=DFZFiFCsTc8
[日志]正在获取url:http://i.imgur.com/QPpOFVv.jpg
[日志]完成http://i.imgur.com/QPpOFVv.jpg
提交id为:1f3amu
[日志]正在获取url:http://25.media.tumblr.com/tumblr_lstla7vqK71ql5q9zo1_500.jpg
回溯(最近一次呼叫最后一次):
文件“download.py”,第50行,在
image_file=urllib2.urlopen(submission.url,超时=5)
文件“/usr/lib/python2.7/urllib2.py”,urlopen中的第127行
return\u opener.open(url、数据、超时)
文件“/usr/lib/python2.7/urllib2.py”,第404行,打开
响应=自身打开(请求,数据)
文件“/usr/lib/python2.7/urllib2.py”,第422行,打开
"开放",
文件“/usr/lib/python2.7/urllib2.py”,第382行,在调用链中
结果=func(*args)
文件“/usr/lib/python2.7/urllib2.py”,第1214行,在http\u open中
返回self.do_open(httplib.HTTPConnection,req)
文件“/usr/lib/python2.7/urllib2.py”,第1187行,打开
r=h.getresponse(缓冲=True)
文件“/usr/lib/python2.7/httplib.py”,第1051行,在getresponse中
response.begin()
文件“/usr/lib/python2.7/httplib.py”,第415行,在begin中
版本、状态、原因=self.\u读取\u状态()
文件“/usr/lib/python2.7/httplib.py”,第371行,处于读取状态
line=self.fp.readline(_MAXLINE+1)
文件“/usr/lib/python2.7/socket.py”,第476行,在readline中
数据=self.\u sock.recv(self.\r bufsize)
socket.timeout:超时
显式捕获超时异常:
作品:
谢谢
多亏了您的建议,我的问题在Python2.7中得到了解决:
except socket.timeout as e:
print(e)
continue
except socket.error as e:
print(e)
continue
我现在就试试。如果没有发生错误,我将接受它。也谢谢你编辑这个问题。CTL+k对我不起作用。如何修复缩进?我只是通过在文本编辑器中递减来手动编辑缩进。在SO网站中可能会有一些处理方法,但我不确定这是什么。
except socket.timeout as e:
print(e)
continue
except socket.error as e:
print(e)
continue