刚刚从无聊的东西书中自动学习网络抓取,但我仍然对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()
???
答案 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字节迭代响应。