1
cxh116 2016-12-05 16:05:52 +08:00 via Android 1
比如你抓取某台国内机器的资源,因为是在国内,所以建立连接很快,但它带宽只有 1M ,所以下载响应体很慢。
|
2
cloverstd 2016-12-05 16:06:39 +08:00
request 支持 stream 的方式,自己分片读,然后判断是否超时
|
3
JianBingXia OP @cxh116 现在就是响应体下载很慢,想设置一个超时,应该怎么做呢?
|
4
JianBingXia OP @cloverstd 如果我想设置一个针对响应体的超时怎么办呢?
|
5
cloverstd 2016-12-05 16:16:40 +08:00 1
@JianBingXia
http://docs.python-requests.org/en/master/user/advanced/#streaming-requests started_time = time.time() timeout = 60 r = requests.get('http://httpbin.org/stream/20', stream=True) if r.encoding is None: r.encoding = 'utf-8' for line in r.iter_lines(decode_unicode=True): if time.time() - started_time > 60: print "timeout" break if line: print json.loads(line) |
6
JianBingXia OP @cloverstd 感谢~~~,难为了我一下午的问题貌似有着落了,ORZ
|
7
ibigbug 2016-12-05 22:44:23 +08:00
|