Бот в сообщениях отправляет одну ссылку вместо нескольких
Проблема в том что, когда бот отправляет сообщение с ссылкой, под всеми сообщениями 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)