【问题标题】:PRAW: How to get a Reddit user total number of submissions when it is greater than 1000?PRAW: Reddit 用户总提交数大于 1000 时如何获取?
【发布时间】:2020-01-07 16:33:01
【问题描述】:

我正在尝试获取 Reddit 用户提交的总数,但 Reddit API 仅限于显示 1000 个帖子。

因此,以下代码不适用于提交数超过一千的用户:

import praw

reddit = praw.Reddit(client_id='CLIENT_ID',
                     client_secret='SECRET_KEY',
                     user_agent='USER_AGENT',
                     username='USERNAME',
                     password='PASSWORD')

counter = 0
submissions = reddit.redditor('REDDIT_USERNAME').submissions.new(limit=None)

for submission in submissions:
    counter += 1

print(counter)

同样,我尝试过简单地做print(len(submissions)),但我得到了以下信息:

TypeError: object of type 'ListingGenerator' has no len()

如果用户的帖子超过 1000 条,有什么方法可以获取用户的总提交数?

提前致谢!

【问题讨论】:

    标签: python python-3.x reddit praw


    【解决方案1】:

    PRAW 或任何其他 Reddit API 客户端无法做到这一点。

    Reddit 的 API 将列表限制为大约 1000 项。使用 PRAW 或任何其他 Reddit API Wrapper,您无法使用 Reddit API 获取更多项目。

    但是,PushShift 等第三方服务拥有 Reddit 数据和 API,可以让用户获得 1000 多个帖子,但需要注意的是这些项目必须是公开的。

    【讨论】:

      【解决方案2】:

      有几种方法之一,有些方法比其他方法更完美。

      您可以在所有时间段(日、周、月、年、所有)内访问每个排序(例如按热门、新、顶部排序)。根据用户的活动,这可能就足够了。您可以使用 Pushshift API 获取公开提交。

      我在comment I made on the redditdev subreddit中解释:

      是的。一般来说,您可以获得列表中的最后 1000 个项目 (/r/all 和 /r/popular 列表更高),无论多长时间 以前是的。

      要获得超过 1000 个项目:

      [...]

      如果这是一个公共子版块,请考虑使用 pushshift.io

      【讨论】:

        猜你喜欢
        • 2020-11-23
        • 1970-01-01
        • 2015-09-06
        • 1970-01-01
        • 1970-01-01
        • 2014-11-07
        • 2020-08-16
        • 1970-01-01
        • 2019-02-18
        相关资源
        最近更新 更多