Я написал простой скрипт для идентификации пользователей, которые вносят вклад в определенные сабреддиты. В качестве отказа от ответственности, если вы планируете использовать этот код, вы должны быть уверены, что анонимизируете данные (как и я, путем агрегирования данных и удаления всех имен пользователей). Он работает с некоторыми субреддитами, но не кажется очень надежным, о чем свидетельствует следующая ошибка, которую я получаю при запуске с / 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)
Когда я меняю сабреддит на «python», кажется, возникает меньше проблем, поэтому, надеюсь, кто-нибудь сможет указать, что мне не хватает. Заранее спасибо!