Здравствуйте!
Делаю парсер, который должен запускаться каждые 20 минут для поиска объявлений для бота телеграм.
Но после первого запуска вылетает ошибка и он начинает беспрестанно срабатывать каждую секунду.
Сама функция парсинга находится в хэндлере:
from selenium import webdriver
from selenium.webdriver.common.by import By
import asyncio
import aioschedule as schedule
import time
def trackingStart():
#options
options = webdriver.ChromeOptions()
#disable webdriver mode
#for older ChromeDriver 79.8.3945 and over
options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(
executable_path="E:\\OSPanel\\domains\\avitoparse.local\\chromedriver\\chromedriver.exe",
options=options
)
try:
url = "https://avi.kz/mobilnye-telefony/"
driver.get(url=url)
allAdsFromPage = driver.find_elements(By.TAG_NAME, "h3")
for ad in allAdsFromPage:
dateAdded = ad.find_element(By.CLASS_NAME, "date-text-KmWDf")
dateText = dateAdded.text
if dateText.find('минут') != -1:
minuteNum = dateText.split()
# если меньше 20, то вывожу
if int(minuteNum[0]) < 20:
adName = ad.find_element(By.TAG_NAME, "h3")
print('Свежее объявление - ' + adName.text + '\n' + dateAdded.text)
time.sleep(1)
except Exception as ex:
print(ex)
finally:
driver.close()
driver.quit()
async def scheduler():
schedule.every(1).minutes.do(trackingStart)
while True:
await schedule.run_pending()
await asyncio.sleep(1)
Вызываю в главном файле запуска бота:
from aiogram.utils import executor
from bot_create import dp
import asyncio
from handlers import mainhand, parseavitohand
async def on_startup(_):
print('Бот вышел в онлайн')
asyncio.create_task(parseavitohand.scheduler())
executor.start_polling(dp, skip_updates=True, on_startup=on_startup)
Ошибка вылезает эта:
Task exception was never retrieved
future:
e\__init__.py:455> exception=TypeError("object NoneType can't be used in 'await' expression")>
Traceback (most recent call last):
File "E:\OSPanel\domains\avitoparse.local\venv\lib\site-packages\aioschedule\__init__.py", line 462, in run
ret = await self.job_func()
TypeError: object NoneType can't be used in 'await' expression
Не могу понять на какой именно await он ругается?