特定のサブレディットに貢献しているユーザーを特定するための簡単なスクリプトを作成しました。免責事項として、このコードを使用する予定がある場合は、必ずデータを匿名化する必要があります (データを集約してすべてのユーザー名を削除することにより)。特定のサブレディットで動作しますが、/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' に変更すると、発生する問題が少なくなったようです。前もって感謝します!