Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何处理urllib2套接字超时?_Python_Exception_Urllib2_Urllib_Continue - Fatal编程技术网

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