📌  相关文章
📜  Python| PRAW – Python Reddit API 包装器

📅  最后修改于: 2022-05-13 01:54:53.125000             🧑  作者: Mango

Python| PRAW – Python Reddit API 包装器

PRAW (Python Reddit API Wrapper)是一个Python模块,提供对 Reddit API 的简单访问。 PRAW 易于使用并遵循 Reddit 的所有 API 规则。
有关 PRAW 的文档位于此处。
先决条件

  • 基本Python编程技能
  • Reddit 基本知识:Reddit 是一个基于人们兴趣的社区网络。这些社区中的每一个都称为 subreddit。用户可以订阅多个 subreddit 来发布、评论和与他们互动。
  • 一个 Reddit 帐户

要安装 PRAW,我们在终端/命令提示符下运行以下 pip 脚本。

pip install praw

安装 PRAW 后,我们需要导入它:

Python3
import praw


Python3
reddit = praw.Reddit(client_id ='my client id',
                     client_secret ='my client secret',
                     user_agent ='my user agent')
 
# to verify whether the instance is read-only instance or not
print(reddit.read_only)


Python3
reddit = praw.Reddit(client_id ='my client id',
                     client_secret ='my client secret',
                     user_agent ='my user agent',
                     username ='my username',
                     password ='my password')
 
# to verify whether the instance is authorized instance or not
print(reddit.read_only)


Python3
reddit.read_only = True


Python3
subreddit = reddit.subreddit('GRE')
 
# display the subreddit name
print(subreddit.display_name)
 
# display the subreddit title
print(subreddit.title)      
 
# display the subreddit description
print(subreddit.description)


Python3
# let the redditor be "AutoModerator"
redditor = reddit.redditor('AutoModerator')
 
# display AutoModerator's karma
print(redditor.link_karma)


导入 PRAW 后,我们需要对其进行实例化。 PRAW 实例有 2 种类型:

  • 只读实例:使用只读实例,我们只能从 Reddit 检索公共信息。来自某个 subreddit 的前 10 个帖子之类的信息。我们不能从这里发布材料。
  • 授权实例:使用授权实例,我们可以做任何普通 reddit 帐户可以做的事情。可以执行评论、发布、转发、点赞等操作。

创建只读实例:

Python3

reddit = praw.Reddit(client_id ='my client id',
                     client_secret ='my client secret',
                     user_agent ='my user agent')
 
# to verify whether the instance is read-only instance or not
print(reddit.read_only)

输出:

True

创建授权实例:

Python3

reddit = praw.Reddit(client_id ='my client id',
                     client_secret ='my client secret',
                     user_agent ='my user agent',
                     username ='my username',
                     password ='my password')
 
# to verify whether the instance is authorized instance or not
print(reddit.read_only)

输出:

False

要切换回只读模式:

Python3

reddit.read_only = True

现在让我们看看使用 PRAW 可以实现的一些操作:

  • 访问 Subreddit:在 reddit 中有多个称为 subreddit 的社区。我们可以使用 subreddit 方法获取 subreddit 实例。

Python3

subreddit = reddit.subreddit('GRE')
 
# display the subreddit name
print(subreddit.display_name)
 
# display the subreddit title
print(subreddit.title)      
 
# display the subreddit description
print(subreddit.description)
  • 输出 :
GRE
GRE
#/r/GRE  

This subreddit is for discussion of the GRE (Graduate Record Examination). If you're studying for the GRE, or can help people who are studying for the GRE, you're in the right place!

  

-----

#Rules

- You must read and follow the rules! 
https://www.reddit.com/r/gre/about/rules

-----
  • 访问提交:在 subreddit 中有多个帖子提交。我们可以遍历提交实例中的提交。 Reddit 为我们提供了多种排序提交的方法:
    • 上升
    • 新的
    • 热的
    • 镀金
    • 有争议的
    • 最佳
  • 访问 Redditor:在 Reddit 中,用户称为 Redditor。我们可以使用 redditor 方法获取 redditor 实例。在该方法中,我们传递了 redditor 的用户名。

Python3

# let the redditor be "AutoModerator"
redditor = reddit.redditor('AutoModerator')
 
# display AutoModerator's karma
print(redditor.link_karma)
  • 输出:
6554