假设我想从 Reddit 子版块“新闻”中流式传输帖子。然而,帖子非常频繁,我们不能说每个帖子都值得。所以我想通过尝试流式传输“热门”列表来过滤好帖子。但我不确定这是否可能,或类似的事情是否可能。
通常,我会这样做来传输帖子:
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")
那么,关于如何同时流式传输和过滤帖子有什么想法吗?
Thanks
流式传输热门帖子是一个不协调的想法。
PRAW 中流的目的是在提交到 Reddit 后立即获取每个帖子或评论(几乎)。另一方面,热门列表包含被认为当前有趣的项目,按分数排序,该分数与分数除以年龄成一定比例。
然而,帖子非常频繁,我们不能说每个帖子都值得。
由于 Reddit 用户查看帖子并对其进行投票需要时间,因此在帖子发布后立即评估帖子是否值得(通过分数来衡量)没有多大意义。
如果您的目标是对每个帖子执行一些操作以使其进入顶部n在 Reddit 子版块中,您可以按一定的时间间隔检查首页,对您尚未看过的任何帖子执行操作。举个例子:
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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)