0
希望有人能告訴我這個腳本是否按照我的意圖運行,如果不解釋我做錯了什麼。Python 3.5.2迭代獲取請求
我使用的RESTful API有一個參數pageSize範圍從10-50。我使用pageSize = 50。還有的是,我沒有使用所謂的PAGENUMBER
那麼另一個參數,我想這將是使GET請求的正確方法:
# Python 3.5.2
import requests
r = requests.get(url, stream=True)
with open("file.txt",'w', newline='', encoding='utf-8') as fd:
text_out = r.text
fd.write(text_out)
UPDATE
我想我明白一個好一點。我更詳細地閱讀了文檔,但我仍然錯過了如何從API獲取整個數據集。下面是一些更多的信息:
verbs = requests.options(r.url)
print(verbs.headers)
{'Server': 'ninx', 'Date': 'Sat, 24 Dec 2016 22:50:13 GMT',
'Allow': 'OPTIONS,HEAD,GET', 'Content-Length': '0', 'Connection': 'keep-alive'}
print(r.headers)
{'Transfer-Encoding': 'chunked', 'Vary': 'Accept-Encoding',
'X-Entity-Count': '50', 'Connection': 'keep-alive',
'Content-Encoding': 'gzip', 'Date': 'Sat, 24 Dec 2016 23:59:07 GMT',
'Server': 'ninx', 'Content-Type': 'application/json; charset=UTF-8'}
我應該創建一個會話,使用以前未使用PAGENUMBER參數創建一個新的URL,直到「X-實體計數」是零?或者,還有更好的方法?
'chunkSize'純粹是關於你正在閱讀的原始字節數一次迴應。這與api返回給你的更高級別的部分(頁面,對象,其他)無關。 – pvg
謝謝,這是否意味着我應該刪除chuck_size = 50,並且請求應該通過多個頁面正確迭代? – BSCowboy
如果沒有塊大小,您只需將整個響應內容讀入內存並將其寫入文件即可。使用cunksize,你一次只能做50個字節。這與這些頁面沒有任何關係。不管怎樣,你無論如何都會關心頁面,因爲你無論如何都將整個事情寫入文件。 – pvg