Я пишу praw-бот, который проходит через определенный subreddit, и беру заголовки каждого поста в пределах определенного лимита, 20 постов. Затем он пытается определить, существует ли конкретная строка ("word_to_find") в заголовке каждого сообщения.
Я хочу, чтобы бот распечатал строку "Не могу найти статьи Kawhi в subreddit!" если он не находит указанное "word_to_find" ни в одном из заголовков сообщения.
Тем не менее, я хочу, чтобы бот печатал вышеуказанную строку только один раз, и только если «word_to_find» не существует ни одного из найденных заголовков.
Однако, когда оператор else выполняется в цикле my, он печатает сообщение с найденной строкой "word_to_find" и оставшимся количеством сообщений с указанной строкой, все в пределах ограничения 20.
Надеюсь, все это имеет смысл. Ниже мой текущий код.
def run_bot():
sub = r.subreddit('nba')
print("---Grabbing subreddit---\n")
subs = sub.top('week', limit=20)
print("---Grabbing posts in sub---\n")
print("Looking for Kawhi Articles..\n")
for posts in subs:
article_url = posts.url
post_title = posts.title
word_to_find = "Kawhi"
if word_to_find in post_title:
print(post_title)
else:
print("Can't find Kawhi articles in the
subreddit!")
run_bot()