我正在使用PyTumblr返回我的所有帖子,但它只返回20.我找到了post函数的kwarg,称为limit,但是当我指定1000时它仍然返回20.任何想法是什么我做错了?
CLIENT = pt.TumblrRestClient(CONSUMER_KEY, CONSUMER_SECRET, OAUTH_TOKEN, OAUTH_SECRET)
all_posts = CLIENT.posts(BLOG_URL, limit=1000)
答案 0 :(得分:5)
Tumblr’s API只允许指定最多20个限制。因此,您的限制1000将被忽略,而您将获得20个限制。您必须将分页与offset
参数结合使用。
你可以给自己写一些生成器 - 类似于无限滚动 - 请求下一页,只要你不断要求更多帖子:
def getAllPosts (client, blog):
offset = 0
while True:
posts = client.posts(blog, limit=20, offset=offset)
if not posts:
return
for post in posts:
yield post
offset += 20