Ошибка IndexError: list index out of range в парсере. Помогите мучаюсь уже 3 час

Вот код:

import requests
import fake_useragent
import telebot
from bs4 import BeautifulSoup

KEY = '6470584623:AAHi9QboGdh4KDpM1ZQaDbXXn_f_Q9ZXrBw'
bot = telebot.TeleBot(KEY)

user = fake_useragent.UserAgent().random
header = {'user-agent': user}
url = 'https://meteoinfo.ru/forecasts'
response = requests.get(url, headers=header).text
soup = BeautifulSoup(response, 'lxml')


temp = soup.find_all('td', class_='td_short_gr')[17]
temp_day = temp.text

day = soup.find_all('tr', class_='ftd_short_gr')[3]
day_weather = day.text


@bot.message_handler(commands=['start'])
def hello(message):
    bot.send_message(message.chat.id, 'Что бы узнать погоду в Краснодаре пропишите "/pogoda"')


@bot.message_handler(commands=['pogoda'])
def weather(message):
    bot.send_message(message.chat.id, f'Завтра в краснодаре {temp_day}, а также {day_weather}')


bot.polling(none_stop=True)

Помогите что делать ошибка:

Traceback (most recent call last): File "C:\Users\artem\PycharmProjects\ConvertorBot\main.py", line 19, in day = soup.find_all('tr', class_='ftd_short_gr')[3] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^ IndexError: list index out of range

я пытаюсь узнать погоду на сайте но там много одинаковых тегов, я где то нашёл что можно при помощи [1] выбирать нужный тег. И суть в том что через время у меня получается но потом снова ошибка

введите сюда код

Ответы (2 шт):

Автор решения: R1senDev

Скорее всего, BeautifulSoup не смог найти хотя бы 4 элемента на странице, которые бы подходили под паттерн <tr class="ftd_short_gr">. И, соответственно, при попытке получить элемент с индексом 3 из результатов поиска в супе, бросается IndexError.

Если бы вы вывели в консоль возвращаемое значение функции soup.find_all('tr', class_='ftd_short_gr'), Вам самим было бы куда проще разобраться в том, что повлекло за собой бросок исключения.

→ Ссылка
Автор решения: kretoffer

Судя по всему массив который возвращает функция soup.find_all('tr', class_='ftd_short_gr') не имеет 3 элемента, у этого массива элементов меньше 4. Проверьте правильно ли написан ваш код и на всякий случай напомню что исчисление в массиве начинается с 0

→ Ссылка