python - 在 Reddit API 中访问列表结果的下一页

标签 python api get python-requests reddit

我正在尝试使用 Reddit 的 API,我了解其中的大部分内容,但我似乎无法弄清楚如何访问下一页结果(因为每页有 25 个条目)。

这是我使用的代码:

import requests
import json

r = requests.get(r'https://www.reddit.com/r/Petscop/top.json?sort=top&show=all&t=all')

listing = r.json()

after = listing['data']['after']

data = listing['data']['children']

for entry in data:
    post = entry['data']
    print post['score']

query = 'https://www.reddit.com/r/Petscop/top.json?after='+after
r = requests.get(query)

listing = r.json()

data = listing['data']['children']

for entry in data:
    post = entry['data']
    print post['score']

所以我将after ID提取为after,并将其传递到下一个请求中。但是,在前 25 个条目(第一页)之后,代码仅返回一个空列表 ([])。我尝试将第二个查询更改为:

r = requests.get(r'https://www.reddit.com/r/Petscop/top.json?after='+after)

结果是一样的。我也尝试用“之前”替换“之后”,但结果还是一样。

是否有更好的方法获取下一页结果?

此外,get 参数中的 r 到底是什么?我从一个例子中复制了它,但我不知道它的实际含义。我问是因为我不知道是否有必要访问下一页,如果有必要,我不知道如何通过添加 after 来动态修改查询。

最佳答案

尝试:

query = 'https://www.reddit.com/r/Petscop/top.json?sort=top&show=all&t=all&after='+after

或更好:

query = 'https://www.reddit.com/r/Petscop/top.json?sort=top&show=all&t=all&after={}'.format(after)

至于字符串中的r可以省略。

关于python - 在 Reddit API 中访问列表结果的下一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49481461/

相关文章:

python - 正则表达式必须包含且只能包含

python - Django 以 10 为基数的 int() 的文字无效 get_prep_value

python - 如何使用 Selenium 向 ChromeDriver 提交 HTTP 身份验证(Flask BASIC Auth)

Python 多处理子进程在运行退出时挂起

java - 如何为类中的参数创建 get 和 set 方法?

excel - 在雅虎财经中检索数据报价的 URL 问题

javascript - 设置变量而不是用户输入

json - 错误 : Type '_InternalLinkedHashMap<String, dynamic>' is not a subtype of type 'List<dynamic>' in type cast

javascript - Openstreetmap:在网页中嵌入 map (如谷歌地图)

c - 获取和设置路径