[python] 2024-05-06 圈点202
摘要:requests之stream参数分析以及用with确保请求关闭
requests之stream参数分析以及用with确保请求关闭。
用with确保请求能及时关闭,示例如下:
url='' #方式1 r1 = requests.get(url, stream=True) #方式2 with requests.get(url, stream=True) as r2: # 在此做处理响应。
requests之stream分析:
当stream=True时,后边需要自己执行Response.close()操作进行关闭结束,否则只有所有的响应体数据被读取完毕连接才会被释放,用with即可以不用close()。
当stream=True时,如果是下载大的文件时,用True,可以先对请求的类型进行判断,如果是大文件,可以中止请求,而不用浪费大流量开销。
当stream=False时,如果是请求的大文件,其当其会进入内存并进行下载,消费大量的内存和流量。
如:
res = requests.get(url, stream=True) ctype = res.headers['Content-Type'] ctype = ctype.lower() if ctype.find('text/html') == -1: res.close() return None htmlstring = res.content res.close()
一般选取小而快的内容时,将 stream 设置为 False ,可快速读取 Response.content内容。