gpt4 book ai didi

python - 我如何使用 PRAW 列出 subreddit 中的热门评论?

转载 作者:行者123 更新时间:2023-11-28 20:41:46 26 4
gpt4 key购买 nike

我需要随时获取 subreddit 中的热门评论。

我已经尝试抓取所有提交的内容,并遍历它们,但不幸的是,您可以获得的帖子数量限制为 1000。

我试过使用 Subreddit.get_comments,但它只返回 25 条评论。

所以我正在寻找解决方法。

你能帮帮我吗?

最佳答案

可以使用 get_comments将参数 limit 设置为 None 以获取所有可用评论。 (默认情况下,它使用帐户金额,通常为 25)。 (用于 get_comments 的参数包括用于 get_content 的参数,包括 limit)。

但是,这可能不会如您所愿 – get_comments(或更具体地说是 /r/subreddit/comments)仅提供新评论或新评论的列表镀金评论,不是热门评论。由于 get_comments 也限制为 1000 条评论,因此您将难以构建完整的热门评论列表。

所以您真正想要的是原始算法——获取 HitTest 门提交的列表,然后获取这些 HitTest 门评论。这不是完美的系统(低分帖子实际上可能有高投票评论),但它是最好的系统。

这是一些代码:

import praw

r = praw.Reddit(user_agent='top_comment_test')
subreddit = r.get_subreddit('opensource')
top = subreddit.get_top(params={'t': 'all'}, limit=25) # For a more potentially accurate set of top comments, increase the limit (but it'll take longer)
all_comments = []
for submission in top:
submission_comments = praw.helpers.flatten_tree(submission.comments)
#don't include non comment objects such as "morecomments"
real_comments = [comment for comment in submission_comments if isinstance(comment, praw.objects.Comment)]
all_comments += real_comments

all_comments.sort(key=lambda comment: comment.score, reverse=True)

top_comments = all_comments[:25] #top 25 comments

print top_comments

关于python - 我如何使用 PRAW 列出 subreddit 中的热门评论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32413633/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com