Бот в сообщениях отправляет одну ссылку вместо нескольких

Проблема в том что, когда бот отправляет сообщение с ссылкой, под всеми сообщениями 1 единственная ссылка, при том что во время парсинга я доставал каждую из них. Правда я не знаю как исправить это(

def callback_inline(call):
    sxodim_link = ''
    
    if call.data == 'today':
        for i in soup.find_all('div', class_ = 'info'):
            for link in soup.find_all('a', class_ = 'img'):
                sxodim_link = link.get('href')
            keyboardurl = types.InlineKeyboardMarkup(row_width=1)
            event_url = types.InlineKeyboardButton(text='Перейти на сайт ->', url=sxodim_link, callback_data='sxodimlink')
            keyboardurl.add(event_url)
            #for link in soup.find_all('a', class_ = 'img'):
             #   print(link.get('href'))
            if i.find('div', class_ = 'str bold'):
                bot.send_message(call.from_user.id, i.find('a', class_ = 'title').text.strip() + '\n' + ' ' + i.find('div', class_ = 'str bold').text.strip() + '\n', reply_markup = keyboardurl)
            else:
                bot.send_message(call.from_user.id, i.find('a', class_ = 'title').text.strip() + '\n', reply_markup = keyboardurl)

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

Автор решения: Alex Zab

Это потому что Ваш sxodim_link сохраняет только последнюю ссылку! Если Вы хотите что бы ссылок было много переведите sxodim_link в список -

sxodim_link = []
for i in soup.find_all('div', class_ = 'info'):
    for link in soup.find_all('a', class_ = 'img'):
        new_link = link.get('href')
        sxodim_link.append(new_link)

Если хотите навести красоту при отправке сообщений переведите список в строку и очистите -

sxodim_link = str(sxodim_link).replace('[', '')
sxodim_link = sxodim_link.replace(']', '')
sxodim_link = sxodim_link.replace("'", '')
bot.send_message(call.from_user.id, sxodim_link, reply_markup = keyboardurl)
→ Ссылка