【问题标题】:PRAW: get_new() misses the very first postPRAW:get_new() 错过了第一篇文章
【发布时间】:2017-12-28 03:14:02
【问题描述】:

我正在尝试创建一个脚本,它会通知我子 reddit 中的新帖子。代码的核心是这样的:

sub = r.get_subreddit('indianwriters',fetch=True)
time.sleep(5)
posts = sub.get_new()                
while True:
        try:
            time.sleep(2.5)                
            post = next(posts)
            print post.id,post.title

但是,这缺少第一个帖子。但是当我按如下方式逐行输入时:

sub = r.get_subreddit('indianwriters',fetch=True)
time.sleep(5)
posts = sub.get_new()
post = next(posts)
print post.id,post.title

这可以正常工作。那么为什么它在脚本中不起作用呢?

【问题讨论】:

  • 您具体对哪个条目有疑问?当我运行上面的代码时,我在两种情况下都得到了相同的第一个条目。 (除非有额外的相关代码)
  • 当我运行我的脚本时,它会返回从第二个帖子开始的所有内容,但是当我逐行运行它时,我会得到第一个帖子。
  • 我没有看到 ID 为 24iqtq 的条目标题:[社区挑战] 圣诞老人的秘密条目

标签: python reddit praw


【解决方案1】:

你在这里重新发明*。最简单的方法是使用流。您的代码如下所示:

subreddit = reddit.subreddit('indianwriters')
for post in subreddit.stream.submissions():
    print("Found post! Title: " + post.title + " Link: " + post.permalink)
    #Do whatever you want to notify you here. 

【讨论】: