Всем привет, еще учусь, так что не судите строго )
Сделал парсинг на питоке, который определяет в див блоке текст и по нему выводит результат.
Результаты показывает в консоле и в боте, я хочу в боте показывать только те результаты, где стоит (Можно).
А так же я записываю в текстовый документ, где стоит (Можно).
Функция парсинга
async def check_text(text):
url = f'https://сайт.com/?query={text}'
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
if response.status == 200:
html = await response.text()
soup = BeautifulSoup(html, 'html.parser')
status_element = soup.find('div', class_='table-block')
if status_element:
status_text = status_element.get_text().strip()
if "ok" in status_text:
return f'{text} \n Можно.'
elif "no" in status_text:
return f'{text} \n Данный вариант недоступен.'
elif "no1" in status_text:
return f'{text} \n Данный вариант недоступен, можно под заказ.'
else:
return f'{text} \n Недоступен.'
else:
return f'Не удалось определить результат {text}.'
return None
Функция обработки
for text in texts_to_check:
try:
<b>#как теперь тут ниже, определить какой статус я получаю, чтобы от этого плясать, показывать только в консоле или же отправлять в бота.</b>
if await check_text(text):
result = await check_text(text)
logger.info(f'{result}') #показываем результат в консоле
else:
resultFree = await check_text(text)
logger.info(f'{text}: {resultFree}') #отправляем результат в бота
if resultFree is not None: #отправляем результат на запись в файл
if not is_already_recorded(text):
with open(get_free_filename(current_filename), 'a') as free_file:
free_file.write(text + '\n')
await send_notification(ADMIN_CHAT_ID, resultFree)
delay = random.randint(100, 200)
await asyncio.sleep(delay)
Я сделал проверку, чтобы от нее и плясать, смотря какой результат статуса я получаю для проверки, но не понял, как мне передать результат, как проверять, если (Можно), то срабатывает тот вариант где отправить боту, если нельзя, то просто в консоле показывает.
if await check_text(text):
result = await check_text(text)
logger.info(f'{result}') #показываем результат в консоле
else:
resultFree = await check_text(text)
logger.info(f'{text}: {resultFree}') #отправляем результат в бота
Вот как тут if await check_text(text):, сделать проверку полученного при парсинге статуса?