如何使用python请求处理分页?

时间:2017-07-17 09:36:31

标签: python python-requests

我需要有关如何使用python requests GET从api获取具有多个页面的数据的帮助。

让我们说api返回低于current_key=223132

的回复
{
 "result":[
    {
    "aaa": 123,
    "bbb": 456,
    ...,
    ...
    }
  ],
  "next_key": 889182
 }

current_key=889182

的下一个
{
 "result":[
    {
    "aaa": 789,
    "bbb": 0,
    ...,
    ...
    }
  ],
  "next_key": 188192
 }

如您所见,next_key的值表示包含最新数据的下一页/最新页面。 current_key表示当前页面。 我现在要做的是每次运行requests.get时,它总会检索下一页的数据。

我尝试使用以下脚本,但它始终检索current_key=223132

的数据
import requests
import json

data_set = []

url = "https://flespi.io/gw/channels/all/messages"
headers = {"Authorization":"MyToken"}
data = {"limit_count": 100, "limit_size": 1000}

query = {'data': json.dumps(data, separators=(',', ':'))}

r = requests.get(url, headers=headers, params=query)

我想也许我可以将页面参数放在data这样的

data = {"limit_count": 100, "limit_size": 1000, "current_key": next_key}

但我认为在重新使用requests.get current_key参数之前,我可能需要首先不使用requests.get参数current_key。换句话说,首先获取next_key的值,然后将其插入下一个requests.get。这似乎是一种不好的做法。

有人有更好的主意吗?

感谢您的帮助和建议。我真的很感激。

1 个答案:

答案 0 :(得分:1)

如果您的服务未为您提供总页数计数

改变你的大脑,使用另一种解决方案

使用此服务,您可以实施寻呼机

prev next