You need to enable JavaScript to run this app. PRAW中如何从Reddit评论获取Redditor用户名用于发送私信
优惠活动
大模型
产品
解决方案
定价
更多

PRAW中如何从Reddit评论获取Redditor用户名用于发送私信

问题修复与实现方案

当前报错的根因

你碰到的TabError: inconsistent use of tabs and spaces in indentation属于Python缩进语法错误,和PRAW功能逻辑完全无关:同一代码层级不能混用Tab制表符和半角空格做缩进,把整段循环块内的缩进统一为4个半角空格,即可消除该报错。

PRAW 对应接口能力说明

PRAW的Comment对象本身提供了完整的作者属性访问能力,完全可以满足自动私信的前置需求:

  • 通过comment.author可以直接获取到对应作者的Redditor类实例,这个实例本身就支持直接调用.message()方法发送私信
  • 如果需要获取纯字符串格式的用户账号名,直接在实例后调用.name属性即可,即comment.author.name,返回值就是无对象封装的纯文本用户名
  • 你原代码中将comment.author赋值后再传入reddit.redditor()初始化的写法存在冗余,且因为传入的不是字符串类型的用户名,属于非标准调用方式,长期运行容易触发类型兼容问题

修正后的可运行代码

for comment in subreddit.stream.comments():
    # 增加空值校验,避免碰到已注销用户的评论触发空属性报错
    if keyphrase in comment.body and comment.author is not None:
        # 直接调用作者实例的发信方法,省略冗余的redditor初始化步骤
        comment.author.message("TEST", "BOT TESTING")
        # 如需保存纯文本用户名用于日志记录等场景,可通过以下方式取值
        # target_username = comment.author.name

内容的提问来源于stack exchange,提问作者pyramiskyma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.01 10:36:09