求助:获取Reddit子版块一周获差评最多评论及解决代码报错
解决PRAW获取争议性评论的AttributeError问题
嘿,我明白你遇到的问题了——你看到文档里写了controversial方法,但直接调用comments.controversial()却报错,这是因为你找错了方法所属的对象!
问题根源
reddit.subreddit('pics').comments返回的是CommentHelper类的实例,这个类确实没有controversial属性。你在文档里看到的controversial方法其实属于Subreddit类,默认它会返回争议性最高的帖子,而不是评论。
两种正确的实现方式
下面是两种可以获取子版块过去一周争议性最高(获差评最多)评论的代码:
方案一:用Subreddit的controversial方法指定获取评论
通过添加comment_sort=True参数,让方法返回评论而非帖子:
# 获取pics子版块过去一周争议性最高的评论 for comment in reddit.subreddit('pics').controversial(time_filter='week', comment_sort=True): # 这里可以添加你的处理逻辑,比如打印评论内容和得分 print(f"评论内容: {comment.body}") print(f"评论得分: {comment.score}") print("------------------------")
方案二:用CommentHelper的排序参数(兼容部分旧版本)
如果你使用的PRAW版本不支持comment_sort参数,可以通过comments.top()并指定sort='controversial'来实现:
for comment in reddit.subreddit('pics').comments.top(time_filter='week', sort='controversial'): print(f"评论内容: {comment.body}") print(f"评论得分: {comment.score}") print("------------------------")
额外提示
为了避免参数兼容问题,建议确保你的PRAW是最新版本,执行以下命令升级:
pip install --upgrade praw
内容的提问来源于stack exchange,提问作者PhasedPerson8
相关产品推荐
相关产品推荐

