iter_content()函数究竟做了什么?

时间:2016-10-04 07:34:36

标签: python python-3.x

刚刚从无聊的东西书中自动学习网络抓取,但我仍然对iter_content功能感到困惑?它实际上做了什么?

尝试使用普通网页下载网页:

note = open('download.txt', 'w')
note.write(request)
note.close()

但结果与使用不同:

note = open('download.txt', 'wb')
for chunk in request.iter_content(100000):
    note.write(chunk)
note.close()

???

1 个答案:

答案 0 :(得分:4)

  

iter_content chunk_size = 1,decode_unicode = False

     

迭代响应数据。当在请求上设置stream = True时,这避免了立即将内容读入内存以获得大响应。块大小是它应该读入内存的字节数。这不一定是因为可以进行解码而返回的每个项目的长度。

     

chunk_size必须是int或None类型。值None将根据流的值而有所不同。 stream = True将在接收到块的任何大小时读取数据。如果stream = False,则数据作为单个块返回。

     

如果decode_unicode为True,将根据响应使用最佳可用编码对内容进行解码。

link - http://docs.python-requests.org/en/master/api/

在这种情况下,它将每次以100000字节迭代响应。