我正在尝试编写一个聊天机器人,并使其扫描所有添加到其中的注释。
目前,我是通过每隔X秒扫描最后的Y条评论来做到这一点的:
handle = praw.Reddit(username=config.username,
password=config.password,
client_id=config.client_id,
client_secret=config.client_secret,
user_agent="cristiano corrector v0.1a")
while True:
last_comments = handle.subreddit(subreddit).comments(limit=Y)
for comment in last_comments:
#process comments
time.sleep(X)
我非常不满意,因为可能存在很多重叠(可以通过跟踪注释id来解决),并且某些注释被扫描了两次,而其他注释则被忽略了。使用此API是否有更好的方法?
答案 0 :(得分:2)
我在PRAW API中找到了使用stream
的解决方案。 https://praw.readthedocs.io/en/latest/tutorials/reply_bot.html
在我的代码中:
handle = praw.Reddit(username=config.username,
password=config.password,
client_id=config.client_id,
client_secret=config.client_secret,
user_agent="cristiano corrector v0.1a")
for comment in handle.subreddit(subreddit).stream.comments():
#process comments
这应该节省一些CPU和网络负载。