PRAW:评论提交者的用户名

Posted

技术标签:

【中文标题】PRAW:评论提交者的用户名【英文标题】:PRAW: Comment Submitter's Username 【发布时间】:2014-01-16 08:25:29 【问题描述】:

我正在开发一个 reddit 机器人,它需要知道哪个用户提交了评论。

根据 PRAW API 包装文档,没有特定方法可以获取 Comment 对象作者的用户名。理想情况下,我可以直接取回用户名。如果这不可能,有没有办法获取作者的全名,然后将其转换为用户名?

【问题讨论】:

【参考方案1】:

我是 PRAW 的维护者。它在哪里说您无法获得Comment 对象作者的用户名?因为这是不正确的,需要修正。

无论如何,Comment 有一个author 属性,它是作者的Redditor 实例。

import praw

r = praw.Reddit(UNIQUE_AND_DESCRIPTIVE_USERAGENT)
submission = r.get_submission("http://www.reddit.com/r/redditdev/comments/16m0uu/praw_20_is_coming_release_in_2_days/")
comment = submission.comments[0]
author = comment.author  # This returns a ``Redditor`` object.
print(author.name)  # The username

【讨论】:

我使用的是 readthedocs.org 文档,其中没有提到如何获取评论的作者。我还检查了 github 源代码(有点简短),在那里找不到任何东西。谢谢回复!我在这个项目上已经停滞了一段时间了。 是的,代码概述部分只显示了类及其方法,但没有显示每个类的属性。 我是另一个遇到问题的人。我找不到任何关于 PRAW 的类属性的文档。对于使用互联网作为资源的人(几乎所有人)来说,缺少属性文档表明它不存在。 PRAW 中的类属性是根据 Reddit 的返回动态创建的,然后转换为适当的类型。这允许 PRAW 在新属性可用时立即使用它们,无需更新。这是一个非常漂亮的功能,但这意味着通过文档字符串创建静态资源最终会变得不准确和误导。这就是为什么文档显示并建议使用标准 python 自省来查看可用属性的原因。 praw.readthedocs.org/en/v2.1.16/pages/writing_a_bot.html【参考方案2】:

由于声誉不足,无法发表评论。 @Humus 在他的评论中提到,PRAW readthedocs.org 文档中没有提到它。有一个简单的解决方法。我们可以使用dir(object_name) 来获取该对象的属性列表。那以后就只是猜谜游戏了。

编辑: 你也可以使用 pprint(vars(object_name))

【讨论】:

以上是关于PRAW:评论提交者的用户名的主要内容,如果未能解决你的问题,请参考以下文章

PRAW:回复帖子

在 praw 中,我正在尝试打印评论正文,但如果遇到空评论怎么办?

PRAW - 500 HTTP 响应错误

Python:Scrapy和Reddit

Drupal 网络表单提交 - 评论,如

帮助获取 Reddit 帖子与 PRAW 链接到的 URL