欢迎访问宙启技术站
智能推送

在Python中使用PRAW库获取Reddit帖子的点赞数和评论数统计信息

发布时间:2024-01-13 16:28:15

Python Reddit API Wrapper(简称PRAW)是一个用于访问Reddit的Python库。它允许开发人员通过Python代码来获取Reddit上的帖子、评论和用户等信息。下面是使用PRAW库获取Reddit帖子的点赞数和评论数统计信息的示例代码。

首先,需要通过以下命令安装PRAW库:

pip install praw

接下来,需要在reddit.com上注册一个应用程序,并获取相应的客户端ID、客户端密钥和用户代理。在reddit.com上创建一个新的应用程序后,可以在开发者工具中找到这些信息。

import praw

# 设置PRAW的用户代理
user_agent = 'reddit_scraper'
# 客户端ID
client_id = 'your_client_id'
# 客户端密钥
client_secret = 'your_client_secret'

# 创建Reddit实例
reddit = praw.Reddit(user_agent=user_agent,
                     client_id=client_id,
                     client_secret=client_secret)

# 获取subreddit(例如:r/Python)中每个帖子的点赞数和评论数统计信息
def get_post_stats(subreddit_name, num_posts):
    # 获取subreddit实例
    subreddit = reddit.subreddit(subreddit_name)
    
    # 获取指定数量的帖子
    posts = subreddit.new(limit=num_posts)
    
    # 遍历每个帖子
    for post in posts:
        # 打印帖子的标题和点赞数
        print("标题: ", post.title)
        print("点赞数: ", post.score)
        
        # 获取帖子的所有评论
        comments = post.comments
        
        # 初始化评论计数
        num_comments = 0
        
        # 遍历每个评论
        for comment in comments:
            # 递归地计算每个评论下的子评论数量
            num_comments += count_comments(comment)
        
        # 打印评论数
        print("评论数: ", num_comments)

# 递归地计算每个评论下的子评论数量
def count_comments(comment):
    # 获取评论的子评论
    replies = comment.replies
    
    # 初始化子评论计数
    num_replies = 0
    
    # 遍历每个子评论
    for reply in replies:
        # 递归地计算每个子评论下的子评论数量
        num_replies += count_comments(reply)
    
    # 返回子评论数量
    return num_replies

# 使用示例
subreddit_name = "Python"  # 将subreddit_name替换为你感兴趣的subreddit名字
num_posts = 10  # 获取的帖子数量

get_post_stats(subreddit_name, num_posts)

请注意,上面的代码仅获取帖子的标题、点赞数和评论数统计信息,并不获取评论的内容。如果想要获取更多的帖子信息或评论信息,可以查阅PRAW库的文档以获取更多细节。

以上是使用PRAW库获取Reddit帖子的点赞数和评论数统计信息的示例代码。希望能帮助到你!