美文网首页
pyhton 中的Response.raw、Response.i

pyhton 中的Response.raw、Response.i

作者: 小鬼客 | 来源:发表于2019-01-23 22:05 被阅读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数据

相关文章

网友评论

      本文标题:pyhton 中的Response.raw、Response.i

      本文链接:https://www.haomeiwen.com/subject/yqfejqtx.html