我正在使用 urllib2 open 下载一些网页。不幸的是,一个页面是无限流(一组实时视频帧)并且 urllib2 不会超时,因为打开调用成功,而“读取”调用永远挂起。示例代码:
res = opener.open(encoded, timeout=timeout)
log('opened', url)
contents = res.read()
log('never get here')
关于避免/终止这些连接有什么技巧吗?
请您参考如下方法:
使用 Jacob 提到的生成器方法,我集成了一个“终止开关”。
startime = datetime.now()
res = opener.open(url, timeout=timeout)
contents = ''
for item in res:
contents += item
if (datetime.now() - starttime).seconds > timeout:
raise IOError('timeout')
