我正在尝试获取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,是否可以获取用户的提交总数?
谢谢!
答案 0 :(得分:2)
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