import asyncio
from aiogram import Bot, Dispatcher, html
from aiogram.client.default import DefaultBotProperties
from aiogram.enums import ParseMode
from aiogram.types import Message
import aioschedule
TOKEN = "..."
dp = Dispatcher()
async def run_scheduler(): # крутит цикл планировщика
while True:
await asyncio.sleep(1)
await aioschedule.run_pending()
async def job(bot, chat_id): # выполняется планировщиком - не обработчик команд!
await bot.send_message(chat_id, 'Пинг!')
@dp.message_handler(text='Попингуй')
async def (message: Message) -> None: # обработчик команды - только планирует выполнение
aioschedule.every(5).seconds.do(job, bot=bot, chat_id=message.chat.id) # указываем функцию и аргументы
await bot.send_message(message.chat.id, 'Ну ты сам попросил...')
async def main() -> None: # тело программы
bot = Bot(token=TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
schedule_task = asyncio.create_task(run_scheduler()) # запускаем планировщик фоном
try:
await dp.start_polling(bot) # крутим бота
finally: # бот докрутился до завершения
schedule_task.cancel() # обрываем выполнение планировщика
try:
await schedule_task # даём ему корректно завершиться
except asyncio.CancelledError:
pass # отменённая корутина выкинут CancelledError, это нормально
if __name__ == "__main__":
asyncio.run(main())
Чем популярнее сайт как цель парсинга, тем жестче там обычно меры защиты.
Желающих попарсить гугл - море, и как следствие - иногда человеку трудно убедить гугл, что он человек, не то что парсеру.
Тебе выше подсказали, что нужна имитация браузера (selenium), причем трудноотличимая отреального браузера (undetected-chromedriver), причем заходящая в сеть с диапазонов адресов, принадлежащих коммерческим провайдерам, а не хостингам.
И в ряде случаев и этого может не хватить, например, может потребоваться история посещений (т.н. прогрев, чтобы бот побегал по разным сайтам где есть гугловская реклама или иные метрики), может потребоваться закос под скорость работы человека... факторов может быть много, а их точный список знают только инженеры гугла, и они не станут им делиться, сам понимаешь.