我编写了一个简单的脚本来识别对某些 subreddits 有贡献的用户。作为免责声明,如果您打算使用此代码,则应确保对数据进行匿名化(我将通过聚合数据并删除所有用户名)。它适用于某些 subreddits,但似乎不是很健壮,正如我在使用 /r/nba 运行它时遇到的以下错误所示:
AttributeError:“NoneType”对象没有属性“get_comments”
下面是我的代码:
import praw
import pprint
users = [] #[username, flair, comments]
r=praw.Reddit(user_agent="user_agent")
r.login("username", "password")
submissions = r.get_subreddit('nba').get_top(limit=1) #won't work with higher limit?
for submission in submissions:
submission.replace_more_comments(limit=3, threshold=5)
flat_comments = praw.helpers.flatten_tree(submission.comments)
for comment in flat_comments:
user_comments = []
for i in comment.author.get_comments(limit=2):
user_comments.append(i.body)
#user_comments.append(str(i.body)) #sometimes causes an error as well
users.append([str(comment.author), comment.author_flair_text, user_comments])
pprint.pprint(users)
当我将 subreddit 更改为“python”时,它似乎遇到的问题更少,所以希望有人能指出我所缺少的。提前致谢!