gpt4 book ai didi

Python PRAW 包装器,逻辑问题

转载 作者:太空宇宙 更新时间:2023-11-03 19:00:00 29 4
gpt4 key购买 nike

我的目标是从 Reddit 获取顶部提交,将其附加到数组中,然后获取第二个顶部提交、第三个、第四个等等。我使用 place_holder 来获取下一个提交,其中第一次有效,但随后只是循环一遍又一遍地获得相同的第二次提交。

当前输出为
帖子 1
帖子2
帖子2
等等

当我想要输出时
帖子 1
帖子2
帖子 3
帖子 4
等等

这是我的代码:

import praw, time

r = praw.Reddit(user_agent='ADNPost')

already_done = []

while True:
for submission in r.get_top(limit=1):
id = submission.id
title = submission.title
url = submission.short_link
save_state = (id)
if id not in already_done:
already_done.append(submission.id)
post = title + " | " + url
print post
print save_state
if id in already_done:
for submission in r.get_front_page(limit=1, place_holder=submission.id):
id = submission.id
title = submission.title
url = submission.short_link
print title, url
save_state = (id)
already_done.append(submission.id)
time.sleep(2)

最佳答案

您忘记了 time.sleep 来遵守 Reddit 政策

为了提高效率,我用一组替换了 already_done

基本思想是在提交已经完成的情况下获取新的提交

import praw, time

r = praw.Reddit(user_agent='ADNPost')

already_done = set()

while True:
l = r.get_top(limit=1)
submission = next(l,None)

if not submission:
continue

while submission.id in already_done:
submission=next(r.get_front_page(limit=1, params={'after':submission.fullname}),None)
if not submission:
break
if submission:
id = submission.id
title = submission.title
url = submission.short_link
print (title, url)
save_state = (id)
already_done.add(submission.id)
time.sleep(2)

编辑:测试place_holder不是你想要的(“t3_”是一个看起来有效的常量

编辑2:根据@bboe命题将“t3_”+submission.id替换为submission.fullname

关于Python PRAW 包装器,逻辑问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16263217/

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