pyhton 中的Response.raw、Response.i
2019-01-23 本文已影响0人
小鬼客
Response.raw
获取来自服务器的原始套接字响应,但是需要在初始请求中设置了 stream=True
r = requests.get('https://github.com/timeline.json', stream=True)
r.raw.read(10)
b'\xff\xd8\xff\xe1\x13\xe9Exif'
Response.iter_content
当流下载时,用Response.iter_content或许更方便些。requests.get(url)默认是下载在内存中的,下载完成才存到硬盘上,可以用Response.iter_content 来边下载边存硬盘
with open(filename, 'wb') as fd:
for chunk in r.iter_content(chunk_size=1024):
fd.write(chunk)
tqdm进度条的结合
tqdm进度条的使用,for data in tqdm(iterable)
Response.iter_content是可迭代对象
def dd(url,filename):#传入url,以及下载文件的全路径filename
#url = "http://www.jxepb.gov.cn/resource/uploadfile/file/20160307/20160307083510567.xls"
response = requests.get(url, stream=True)
#用response储存在获取url的响应
with open(filename, "wb") as handle:
#打开本地文件夹路径filename,以二进制写入,命名为handle
for data in tqdm(response.iter_content()):
#tqdm进度条的使用,for data in tqdm(iterable)
handle.write(data)
#在handle对象中写入data数据