4

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

4

1 に答える 1

2

わかりましたので、ラインが表示されます

for i in comment.author.get_comments(limit=2):

あなたのコードが失敗していると思います

comment.author is None
于 2014-11-10T20:36:32.263 に答える