通过PyTumblr只返回20个帖子

时间:2014-02-10 23:13:02

标签: python tumblr

我正在使用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)

1 个答案:

答案 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