如何从rest API请求返回所有页面而无需手动指定页码?



我正在从分页API检索数据并将其转换为。json格式,我想检索响应中的所有页面,而不必在URL中指定页码。API接受页码和每页的结果(最多。250)作为输入

我知道典型的解决方案是使用指定下一页地址的键来循环遍历页面。然而,这个API似乎没有在输出中包含下一页参数(参见下面的示例响应)。我只能认为最后一页(即总页数)参数可能在这里有用?我怎么刮都没有指定页码的页面?

我的脚本:

import requests
import json
url = "https://api-v2.pitchbook.com/deals/search?keywords=machine learning accelerator&perPage=250"
payload={}
headers = {
'Authorization': 'PB-Token 1234567'
}
response = requests.request("GET", url, headers=headers, data=payload)
data = response.json()
print(data)                                                                                                                                                                                 

{"统计":{"总":2,"perPage":250年,"页面":1、"lastPage":1},"物品":[{' dealId ': ' 98982 -{'dealId': '112532-05T', 'companyId': '162120-79', 'companyName': ' companyanya '}, {'dealId': '112532-05T',"companyId":"233527 - 87","公司名称":"为companyB"}]}

无需在URL中指定页码

除非您可以在请求头中传递页码,否则这是不可能的。您可以将一个非常大的数字传递给perPage参数,但服务器可能总是有更多的数据,否则客户端将无法反序列化大的有效负载。

看起来好像这个API没有在输出

中包含下一页参数

不需要。你有你当前的页面,以及每页结果的数量。. 只要"总";还没有读到你的本地结果,和"最后一页";大于您当前的"页面",您应该重新请求page+1