我写了一个简单的脚本来识别对某些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'时,似乎遇到的问题较少,所以希望有人可以指出我缺少的东西。提前谢谢!
答案 0 :(得分:1)
好的,所以你看到了
行for i in comment.author.get_comments(limit=2):
我认为你的代码失败了,因为
comment.author is None