Продолжайте получать ошибку атрибута, используя Praw для очистки указанного c поискового термина в subreddit - PullRequest
0 голосов
/ 24 апреля 2020

Я экстремальный новичок. Моя цель состоит в том, чтобы почистить сообщения и комментарии reddit от subreddit r / Coronavirus от поисковика «курильщики». Я продолжаю получать «AttributeError: объект« MoreComments »не имеет атрибута« body »», ссылаясь на строку «commentsDict [« Body »]. Append (topLevelComments.body)». Есть две другие строки, использующие (topLevelComments.author, .score и .body), которые продолжают вызывать у него sh. Когда я закомментирую все строки с помощью ".append (topLevelComments.), Он возвращает: ValueError (" массивы должны быть одинаковой длины "), я схожу с ума, так как этот код работал нормально 2 дня go. Пожалуйста, помогите , код ниже. Я закомментировал строки, вызывающие проблемы, но не уверен, что делать с ошибкой 2. Хотя один шаг за раз:

commentsDict = {"Post" : [], "Post Score" : [], "No of Comments":[], "Post Date":[], \
                "Body":[],"Score":[],"Date":[],"Author":[], "id":[], "p_auth":[], "Post body":[]}

for submission in reddit.subreddit("Coronavirus").search("smoker"):
    submission.comment_sort = 'new'
    topLevelComments = list(submission.comments)
    for topLevelComments in submission.comments:
        commentsDict["Post"].append(submission.title)#title of post with comment
        commentsDict["Post Score"].append(submission.score)
        commentsDict["Post body"].append(submission.selftext)
        commentsDict["id"].append(submission.id)
        commentsDict["p_auth"].append(submission.author)
        commentsDict["No of Comments"].append(submission.num_comments)
        date = submission.created_utc
        timestamp = datetime.datetime.fromtimestamp(date)
        commentsDict["Post Date"].append(timestamp.strftime('%Y-%m-%D %H:%M:%S'))
        #commentsDict["Body"].append(topLevelComments.body)
        #commentsDict["Score"].append(topLevelComments.score)
        #date = topLevelComments.created
        timestamp = datetime.datetime.fromtimestamp(date)
        commentsDict["Date"].append(timestamp.strftime('%Y-%m-%D %H:%M:%S'))
        #commentsDict["Author"].append(topLevelComments.author)

commentsDF = pd.DataFrame(commentsDict)

commentsDF.to_csv('smoker_covid.csv', index=True) 
...