你能够在线播放达到“热门”帖子吗?

2024-04-25 21:37:21 发布

您现在位置:Python中文网/ 问答频道 /正文

所以假设我想从subreddit“news”流式发送帖子。然而,帖子非常频繁,我们不能说每个帖子都有价值。所以我想通过流式传输“热门”列表来过滤好的帖子。但我不确定这是否可能,或类似的事情。
通常情况下,我就是这样来流式处理帖子的:
for submission in subreddit.stream.submissions(): if not submission.stickied: print(str(submission.title) + " " + str(submission.url) + "\n")

这会过滤帖子,但不会流式传输:

for submission in subreddit.hot(limit=10): print(str(submission.title) + " " + str(submission.url) + "\n")

那么,有什么关于我可以同时流式和过滤帖子的想法吗?
谢谢


Tags: inurlsubmission列表fortitle流式事情
2条回答

要添加到jarhill0的答案中,还可以通过在params中指定“after”来分页。在

import praw
import time


reddit = praw.Reddit()  # must be edited to properly authenticate
subreddit = reddit.subreddit('news')
seen_submissions = set()

while True:
    params = None
    for _ in range(10):# get first 10 pages of 'hot'.
        for submission in subreddit.hot(limit=10, params=params):
            if submission.fullname not in seen_submissions:
                seen_submissions.add(submission.fullname)
                print('{} {}\n'.format(submission.title, submission.url))
            params = {"after": submission.fullname}
    time.sleep(60)  # sleep for a minute (60 seconds)

流式热帖是一个不协调的想法。在

在PRAW中,流的目的是在提交给Reddit之后立即(几乎)获得每个帖子或评论。另一方面,热点列表包含了目前被认为是有趣的项目,按分数排序,分数与分数除以年龄成一定比例。在

However the posts are very frequent and we can't say that every post is worthy.

因为Reddit用户需要时间才能看到帖子并对其投票,因此在帖子发布后立即用分数来衡量一篇帖子是否值得,并没有太大意义。在


如果你的目标是对每一篇登上subreddit顶部的帖子执行一些操作,那么你可以在一定的时间间隔内查看首页,对你没有看到的任何帖子执行你的操作。例如:

import praw
import time


reddit = praw.Reddit()  # must be edited to properly authenticate
subreddit = reddit.subreddit('news')
seen_submissions = set()

while True:
    for submission in subreddit.hot(limit=10):
        if submission.fullname not in seen_submissions:
            seen_submissions.add(submission.fullname)
            print('{} {}\n'.format(submission.title, submission.url))
    time.sleep(60)  # sleep for a minute (60 seconds)

相关问题 更多 >