@Maks1ma

Почему не выводится надпись при команде /start?

Никак не пойму, почему при вводе команды /start не появляется текст, который прописан для бота. Ошибок при этом никаких не выдаёт.

602ba2b45b9b6245069874.png

Мой код:
from bs4 import BeautifulSoup
import requests
import telebot

bot = telebot.TeleBot('token')
url = 'https://ria.ru/'   #Берём адрес страницы
page = requests.get(url)
new_news = []               #Создаём переменную из которой будем брать информацию
soup = BeautifulSoup(page.text, "html.parser") #Добавляем парсер
news = soup.findAll('a', class_='cell__title-text-valign') #Указываем конкретные теги
for i in range(len(news)):      #Создаём цикл
    if news[i].find('span', class_='cell-list__list') is not None:
        new_news.append(news[i].text)

for i in range(len(new_news)):

    @bot.message_handler(commands=['start'])
    def start_message(message):
        bot.send_message(message.chat.id, 'Привет, ты написал мне /start')

    @bot.message_handler(content_types=['text'])
    def send_text(message):
        if message.text == 'Новости':
            bot.send_message(message.chat.id, ''.join(new_news[:5]))
        elif message.text == 'News':
            bot.send_message(message.chat.id, ''.join(new_news[:5]))

bot.polling()
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 2
HemulGM
@HemulGM Куратор тега Python
Delphi Developer, сис. админ
Слышал когда-нибудь о таком слове "отладка"?

И вообще, что ты тут понаписал?
Сначала у тебя собираются новости (1 раз за запуск). Потом ты их складываешь в массив, а потом ты запускаешь массив, в котором, кхм, определяешь два метода... Что? Зачем? А главное, как? Ну а потом стартуешь лонгпул
Ответ написан
@RqL
Возможно у вас for не начинает работу, попробуйте на каждом шаге поставить print(), это поможет понять где ошибка
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы