Как выполнять бесконечный цикл, чтобы он не блокировал работу всей программы?
Я делал похожего бота для этого сайта(для получения новых вопросов по моим тегам). Алгоритм работы был примерно таким:
1) Создал функцию, которая загружает и парсит главную страницу этого сайта. Вытаскивает из нее все ссылки на новые вопросы. Функция возвращает список ссылок.
2) В цикле for беру каждую ссылку, и проверяю - есть ли она в файле(можно БД прикрутить). Если данной ссылки нет - значит вопрос новый. Добавляю ссылку в файл, и отправляю её себе в телеграм. Если ссылка в файле есть, значит этот вопрос уже отправлялся мне в телеграм, и, следовательно, - ничего не делаю
3) В боте делал цикл с задержкой 5 минут, и в цикле вызывал функцию-парсер.

Создай поток