📌  相关文章
📜  Python – 使用 PRAW 制作 Reddit 机器人

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

Python – 使用 PRAW 制作 Reddit 机器人

Reddit 是一个基于人们兴趣的社区网络。这些社区中的每一个都称为 subreddit。用户可以订阅多个 subreddit 来发布、评论和与他们互动。
Reddit 机器人是自动响应用户帖子或以特定时间间隔自动发布内容的东西。这可能取决于用户发布的内容。它可以由某些关键短语触发,也取决于有关其内容的各种 subreddit。
为了实现 Reddit 机器人,我们将使用Python Reddit API Wrapper (PRAW)。它允许我们登录到 Reddit API 以直接与网站的后端交互。关于这个库的更多信息可以在这里找到——PRAW—— Python Reddit API Wrapper。

我们的机器人会告诉给定单词的相似单词。我们将使用enchant模块的suggest()方法来查找相似的单词。

算法 :

  1. 导入模块 praw 并附魔。
  2. 使用有效参数创建一个授权的 Reddit 实例。
  3. 选择机器人所在的 subreddit。
  4. 选择一个将触发该 subreddit 中的机器人的单词。
  5. 检查 subreddit 中的每个评论是否有触发短语。
  6. 找到触发短语后,从评论中提取单词并使用enchant模块找到其相似的单词。
  7. 用类似的话回复评论。
# import the modules
import praw
import enchant
  
# initialize with appropriate values
client_id = ""
client_secret = ""
username = ""
password = ""
user_agent = ""
  
# creating an authorized reddit instance
reddit = praw.Reddit(client_id = client_id, 
                     client_secret = client_secret, 
                     username = username, 
                     password = password,
                     user_agent = user_agent) 
  
# the subreddit where the bot is to be live on
target_sub = "GRE"
subreddit = reddit.subreddit(target_sub)
  
# phrase to trigger the bot
trigger_phrase = "! GfGBot"
  
# enchant dictionary
d = enchant.Dict("en_US")
  
# check every comment in the subreddit
for comment in subreddit.stream.comments():
  
    # check the trigger_phrase in each comment
    if trigger_phrase in comment.body:
  
        # extract the word from the comment
        word = comment.body.replace(trigger_phrase, "")
  
        # initialize the reply text
        reply_text = ""
          
        # find the similar words
        similar_words = d.suggest(word)
        for similar in similar_words:
            reply_text += similar + " "
  
        # comment the similar words
        comment.reply(reply_text)

触发机器人:

机器人用类似的话回复: