attributes - 使用 Praw 不断获取属性错误以在 subreddit 中抓取特定搜索词
问题描述
我是一个极端的新手。我的目标是通过搜索词“吸烟者”从 subreddit r/Coronavirus 中抓取 reddit 帖子和评论。我不断收到“AttributeError:'MoreComments'对象没有属性'body'”指的是“commentsDict [“Body”].append(topLevelComments.body)”行。还有另外两行使用(topLevelComments.author、.score 和 .body)不断导致它崩溃。当我用 ".append(topLevelComments.) 注释掉所有行时,它返回:ValueError("arrays must be all be same length") 我疯了,因为这段代码在 2 天前运行良好。请帮助,下面的代码.我注释掉了引起麻烦的行,但也不确定如何处理错误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)
解决方案
推荐阅读
- php - 刷新 Google Calendar API 的访问令牌
- clickhouse - 如何在 servral sql 条件下创建索引?
- cqrs - 是否有关于如何应用 CQRS 和 CQRS 问题的硬定义
- php - 不知道从哪里开始使用 REST API 创建 ServiceNow 事件
- ios - StackView 未以编程方式向左对齐
- python - 如何将局部变量从函数附加到python中的数组/列表?
- express-validator - Express-validator:定义接受的字段
- excel - 有人能解释一下这个 Excel 2010 或更早版本的密码保护器是如何工作的吗
- cypher - 匹配属性上的节点,并在结果中包含这些节点之间的关系
- json - 如何使用 symfony formbuilder 显示必填字段错误(验证)消息?