Добрый день. Нужно вывести результаты парсинга в бота телеграм. Сам скрипт работает и выдает результат в консоль как надо.
get_main_div() возвращает див, с которого начинается парсинг, он меняется в зависимости от четности/нечетности недели, поэтому вынес это в отдельную функцию. если скрипт запускать в консоли print(get_pair()) , то отрабатывает норм. теперь задача запихать вывод фунции в бота телеграм. но телега не понимает generator и поэтому падает с ошибкой
если бы результаты были бы получены один раз - я бы собрал их в переменные, возвратил бы эти переменные из функции и в боте вывел бы эти переменные каждую в новом message. но в данном случае здесь несколько циклов, и как реализовать, чтобы результаты выводились раздельно на каждый день недели я допетрить не могу. подскажите, пожалуйста, в какую сторону копать? спасибо.
Python:
def get_pair():
main_div = get_main_div()
class_lines = main_div.find_all('div', class_='class-lines')
for i in class_lines:
day = i.previous_element
yield '**********************\n'
yield day
yield '----------------------'
class_tails = i.find_all('div', class_='class-tails')
for pair in class_tails:
# время начала пары
time_ = pair.find('div', class_='class-time').text
# print(time_)
yield time_
for p in pair.find_all('div', class_='class-tail'):
if 'class-all-week' in p.attrs['class']:
week = 'Общая неделя'
# print(' Общая неделя')
elif 'class-even-week' in p.attrs['class']:
week = 'Четная неделя'
# print(' Четная неделя')
elif 'class-odd-week' in p.attrs['class']:
week = 'Нечетная неделя'
# print(' Нечетная неделя')
if p.text == 'свободно':
data = (week, 'Время свободно')
else:
# предмет
subject = p.find('div', class_='class-pred').text
# аудитория
room = p.find('div', class_='class-aud').text
# лекция/практика
variant = p.find_all('div', class_='class-info')[0].text
# преподаватель
coach = p.find_all('div', class_='class-info')[-1].find('a').text
data = (week, subject, room, variant, coach)
yield data
get_main_div() возвращает див, с которого начинается парсинг, он меняется в зависимости от четности/нечетности недели, поэтому вынес это в отдельную функцию. если скрипт запускать в консоли print(get_pair()) , то отрабатывает норм. теперь задача запихать вывод фунции в бота телеграм. но телега не понимает generator и поэтому падает с ошибкой
Код:
aiogram.utils.exceptions.CantParseEntities: Can't parse entities: unsupported start tag "generator" at byte offset 0
если бы результаты были бы получены один раз - я бы собрал их в переменные, возвратил бы эти переменные из функции и в боте вывел бы эти переменные каждую в новом message. но в данном случае здесь несколько циклов, и как реализовать, чтобы результаты выводились раздельно на каждый день недели я допетрить не могу. подскажите, пожалуйста, в какую сторону копать? спасибо.