2016-10-04 50 views
-2

剛學完網絡抓取自動化無聊的東西書,但我仍然很困惑iter_content函數?它實際上做了什麼?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() 

???

回答

2

iter_contentCHUNK_SIZE = 1,decode_unicode =假

迭代在響應數據。在請求中設置stream = True時,可以避免將內容一次性讀入內存以獲得較大的響應。塊大小是它應該讀入內存的字節數。這不一定是解碼可能發生時返回的每個項目的長度。

chunk_size必須是int或None類型。根據流的值,None的值將有不同的功能。 stream = True將在數據以任何大小接收到的數據到達時讀取數據。如果stream = False,則數據作爲單個塊返回。

如果decode_unicode爲True,則內容將使用基於響應的最佳可用編碼進行解碼。

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

在這種情況下,將遍歷每次用100000個字節的響應。