PRAW:当Reddit用户的提交总数大于1000时,如何获取?

时间:2019-12-30 16:04:30

标签: python python-3.x reddit praw

我正在尝试获取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,是否可以获取用户的提交总数?

谢谢!

2 个答案:

答案 0 :(得分:2)

使用PRAW或任何其他Reddit API客户端是不可能的。

Reddit的API将列表限制为大约1000个项目。通过PRAW或任何其他Reddit API包装器,您不能使用Reddit API来获取更多物品。

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

答案 1 :(得分:0)

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

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

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

  

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

     

获得超过1000个物品:

     

[...]

     

如果这是一个公开的subreddit,请考虑也使用pushshift.io