Проблемное место выделил подчеркиваниями сверху и снизу. Так же добавил код парсера, хотя вроде проблема не в нем, так как первый круг бот отрабатывает на ура, а после того как массив с анекдотами становится пустым, код не хочет заполнять этот массив по новой, просто вылазит вот такая ошибка
Если знаете как исправить ошибку, распишите пожалуйста поподробнее, потому что я только начинаю изучать программирование. Заранее благодарю)
Код парсера (parser_anecdots.py)
Python:
line 22, in anecdotes
mes = anecdots[0]
IndexError: list index out of range
Если знаете как исправить ошибку, распишите пожалуйста поподробнее, потому что я только начинаю изучать программирование. Заранее благодарю)
Python:
[PYTHON]if message.text.lower() in user_message6:
anecdotes(message)
# анекдоты
def anecdotes(message):
global anecdots, cnt_anecdots, user_message6
if message.text.lower() == 'завершить сессию':
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=1)
help = types.KeyboardButton('/help')
mes = f'Сессия завершена, можете обратиться к команде <b>/help</b>, что бы открыть главное меню 😉'
markup.add(help)
bot.send_message(message.chat.id, mes, reply_markup=markup, parse_mode='html')
else:
if message.text.lower() == 'кол-во анекдотов посмотренных пользователями с момента запуска бота':
mes = 'С момента запуска прочитано анекдотов в количестве ' + str(cnt_anecdots) + ' (шт.)'
elif message.text.lower() == 'следующий анекдот' or message.text.lower() in user_message6:
if len(anecdots) == 0:
anecdots = parser_anecdots.anec
# anecdots = anecdotes(message)
mes = anecdots[0]
del anecdots[0]
cnt_anecdots += 1
else:
mes = 'Если вам надоели анекдоты, нажмите кнопку "завершить сессию" 🥺'
markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
next = types.KeyboardButton('следующий анекдот')
exit = types.KeyboardButton('завершить сессию')
col_anecdots = types.KeyboardButton('кол-во анекдотов посмотренных пользователями с момента запуска бота')
markup.add(next, exit, col_anecdots)
a = bot.send_message(message.chat.id, mes, reply_markup=markup, parse_mode='markdown')
bot.register_next_step_handler(a, anecdotes)
Код парсера (parser_anecdots.py)
Python:
import requests
from bs4 import BeautifulSoup
import random
req = requests.get('https://www.anekdot.ru/random/anekdot/')
soup = BeautifulSoup(req.text, 'html.parser')
anecdots = soup.find_all('div', class_='text')
anecdots = [x.text for x in anecdots]
random.shuffle(anecdots)