📌  相关文章
📜  Python PRAW – 在 Reddit 中对评论投反对票(1)

📅  最后修改于: 2023-12-03 15:04:07.884000             🧑  作者: Mango

Python PRAW – 在 Reddit 中对评论投反对票

如果你是一个 Reddit 用户或者经常浏览 Reddit,那么你肯定知道 Reddit 社区非常注重投票。Reddit 用户可以通过给帖子或评论投反对票来表达他们的意见。虽然在 Reddit 网站上投票很容易,但是如果你想在自己的 Python 项目中实现 Reddit 投票功能,那么你需要使用 Reddit 的 API。

Python Reddit API Wrapper (PRAW) 是一个非常棒的 Python 库,它提供了一个简单的接口来与 Reddit API 进行交互。使用 PRAW,你可以轻松地在 Reddit 中查询评论、发布帖子、回复评论和给评论投反对票等。下面将详细介绍如何使用 PRAW 在 Reddit 中对评论投反对票。

安装 PRAW

在开始使用 PRAW 之前,你需要先安装它。你可以使用 pip 命令来安装 PRAW:

pip install praw
创建 Reddit 应用程序

要使用 Reddit API,你需要首先创建一个 Reddit 应用程序。在 Reddit 中,应用程序是指通过 API 来访问 Reddit 的客户端。你需要访问 Reddit 应用程序页面 并创建一个新的应用程序。

创建 Reddit 应用程序的过程非常简单。你只需要提供应用程序的名称、描述、网址和重定向 URI。在创建应用程序时,你将会获得以下信息:

  • client_id:Reddit 应用程序的客户端 ID。
  • client_secret:Reddit 应用程序的客户端秘钥。

请将这些信息记录下来,因为你稍后需要使用它们来访问 Reddit API。

创建 PRAW 实例

现在,让我们来创建一个 PRAW 实例,并使用 Reddit API 访问帖子的评论。

首先,你需要从 praw 库中导入 Reddit 类:

import praw

reddit = praw.Reddit(
    client_id="your_client_id",
    client_secret="your_client_secret",
    user_agent="your_user_agent",
    username="your_username",
    password="your_password"
)

在上面的代码中,Reddit 类接受上面提到的客户端 ID、客户端秘钥、Reddit 用户代理、Reddit 用户名和密码。请将这些值替换为您自己的值。

如果您只是想使用 Reddit 上的公共信息,而不是访问用户特定的信息,比如用户发出的评论和他们的权利,你可以只用客户端ID和客户端秘钥。

import praw

reddit = praw.Reddit(
    client_id="your_client_id",
    client_secret="your_client_secret",
    user_agent="your_user_agent"
)
访问 Reddit 帖子的评论

现在,我们已经创建了 Reddit 实例,让我们来访问某个帖子的评论。假设你想访问 https://www.reddit.com/r/python/comments/xxxxx/ 的评论。

你可以使用以下代码获取评论对象:

submission = reddit.submission(
    url="https://www.reddit.com/r/python/comments/xxxxx/"
)
comments = submission.comments

在上面的代码中,reddit.submission() 方法返回一个帖子对象。你需要将需要在括号中提供帖子的 URL。

现在,submission.comments 返回 Reddit 帖子的评论。请记住,Reddit 评论树是一个嵌套的树形结构。如果你想访问顶级评论,请使用以下代码:

top_level_comments = list(submission.comments)

在上面的代码中,list(submission.comments) 返回一个包含 Reddit 帖子的所有顶级评论的列表。

给 Reddit 评论投反对票

好了,现在让我们给某个评论投反对票。假设你想给对应 https://www.reddit.com/r/python/comments/xxxxx/ 的帖子的第一条评论投反对票。

首先,你需要找到该评论的 ID。你可以使用以下代码找到第一条评论的 ID:

comment_id = submission.comments[0].id

在找到评论 ID 之后,你可以使用以下代码来给该评论投反对票:

comment = reddit.comment(id=comment_id)
comment.downvote()

如果你想给评论投赞成票,请使用以下代码:

comment.upvote()

当你给评论投票时,你需要注意 Reddit 的规则和惯例。

结论

以上是使用 PRAW 在 Reddit 中对评论投反对票的介绍。PRAW 提供了一个简单的接口来访问 Reddit API,使得在 Python 中实现 Reddit 投票功能非常容易。如果你想了解更多 PRAW 的信息,请访问 PRAW 文档